2017-04-13 151 views
0

我有一个使用Mosquitto客户端的php脚本。我正在使用putty SSH访问服务器。我想连续在后台运行php脚本,即使我从putty断开连接。我曾尝试屏幕的nohup但在后台运行php脚本,永远不会死亡linux

关闭腻子窗口,当它停止谢谢

+0

你有没有听说过这个名字的cron的命令会话? –

回答

1

一个简单的解决方案是

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=""空)

+0

谢谢我找到它。这与您的解决方案是一样的。现在如何阻止这个过程?我使用了ps -ef | grep nohup,但问题是PID总是会改变,所以每次我尝试杀死它时,都会说PID不存在 – user3921905

+0

@ user3921905,我添加了一个解决方案来使用标准UNIX控制脚本机械学 – wormi4ok

0

使用screen是一个比nohup更好的解决方案。

屏幕让你的名字会和以后重新加入他们,所以你不需要求助于用ps找到你转到后台运行的应用程序

可以启动一个名为screen会话这样

screen -S [session name] 

哪你可以从CTRL分离 - 一个d然后用

重新安装
screen -r [session name] 

您也可以在后台开始

screen -dmS [session name] [command] 

https://www.gnu.org/software/screen/manual/screen.html