我有一个过程,我希望能够在任何时候启动Gearman客户端在后台运行.
我通过打开两个到我的服务器的SSH连接找到了成功,一个启动了worker,另一个启动了运行客户端.这产生了所需的输出.
问题在于,我希望工作人员在后台不断运行,这样我就可以在需要完成流程时调用客户端.但是当我关闭运行工作程序PHP文件的终端时,对客户端的调用不起作用 – 工作者似乎死了.
有没有办法让工作人员在后台不断运行,因此调用新客户端无需启动新工作人员即可运行?
谢谢!
解决方法:
如果你希望程序在父程序已经死亡之后继续运行(即你已经关闭了你的终端),你必须用nohup
调用它:
nohup your-command &
引用我链接到的相关*页面:
nohup
is a POSIX command to ignore
theHUP
(hangup) signal, enabling
the command to keep running after the
user who issues the command has logged
out.
TheHUP
(hangup) signal is
by convention the way a terminal warns
depending processes of logout.
对于另一个(可能更多)有趣的解决方案,请参阅以下文章:Dæmonize Your PHP.
它指向Supervisord,这使得一个进程仍在运行,必要时重新启动它.