我有一个使用Mosquitto客户端的php脚本。我正在使用putty SSH访问服务器。我想连续在后台运行php脚本,即使我从putty断开连接。我曾尝试屏幕的nohup但在后台运行php脚本,永远不会死亡linux
关闭腻子窗口,当它停止谢谢
我有一个使用Mosquitto客户端的php脚本。我正在使用putty SSH访问服务器。我想连续在后台运行php脚本,即使我从putty断开连接。我曾尝试屏幕的nohup但在后台运行php脚本,永远不会死亡linux
关闭腻子窗口,当它停止谢谢
一个简单的解决方案是
nohup php script.php &
所以你在后台运行脚本,并从终端断开过程。如果没有帮助,请在它后面尝试使用disown
命令。这些命令之间存在差异good answer with detailed explanation。
要完全控制脚本,一个不错的选择将是System V
初始化脚本。在https://github.com/fhd/init-script-template有一个模板,您可以使用它。
将模板复制到/etc/init.d
目录并重新命名。在模板中,您需要更改变量:
dir="/your/working/directory"
cmd="nohup php script.php"
user="your user"
这样做,你就可以通过
/etc/init.d/your_script start
/etc/init.d/your_script stop
控制脚本请确保您有权限/var/log/
和/var/run/
,编写或运行脚本sudo
(离开user=""
空)
谢谢我找到它。这与您的解决方案是一样的。现在如何阻止这个过程?我使用了ps -ef | grep nohup,但问题是PID总是会改变,所以每次我尝试杀死它时,都会说PID不存在 – user3921905
@ user3921905,我添加了一个解决方案来使用标准UNIX控制脚本机械学 – wormi4ok
使用screen
是一个比nohup更好的解决方案。
屏幕让你的名字会和以后重新加入他们,所以你不需要求助于用ps找到你转到后台运行的应用程序
可以启动一个名为screen
会话这样
screen -S [session name]
哪你可以从CTRL分离 - 一个,d然后用
重新安装screen -r [session name]
您也可以在后台开始
screen -dmS [session name] [command]
你有没有听说过这个名字的cron的命令会话? –