我有一个能够在后台运行的进程,可以在任何时候启动Gearman客户端。
我成功地打开了两个到我的服务器的SSH连接,其中一个启动worker,另一个运行客户端。这将产生所需的输出。
问题是,我希望有一个不断在后台运行的工作程序,这样只要我需要完成这个过程,我就可以调用一个客户端。但是,一旦我关闭了运行着worker PHP文件的终端,对客户端的调用就不起作用了-- worker似乎死了。
有没有一种方法可以让worker在后台持续运行,这样调用新的客户端就可以工作,而不必启动新的worker?
谢谢!
发布于 2011-04-02 04:53:50
如果你想让一个程序即使在它的父进程死了(也就是你关闭了你的终端)后也能继续运行,你必须用来调用它:
nohup your-command &
引用我链接的相关维基百科页面:
nohup
是一个POSIX命令,用于忽略HUP
(挂起)信号,使该命令在发出该命令的用户注销后继续运行。
按照惯例,HUP
(挂机)信号是终端根据注销过程发出警告的方式。
有关另一个(可能更有趣)的解决方案,请参阅下面的文章:。
它指向,它可以确保进程仍在运行,并在必要时重新启动它。
发布于 2011-04-02 04:53:56
有没有一种方法可以让worker在后台持续运行,这样调用一个新的客户端就可以工作,而不必启动一个新的worker?
Supervisor!
2009PHP Advent Calendar提供了a quick article on using Supervisor (和其他技巧)来创建持续运行的PHP脚本,而不必处理PHP本身的守护进程。
https://stackoverflow.com/questions/5518724
复制相似问题