2011-12-24 193 views
3

我正在尝试重新启动自定义IRC bot。我尝试了各种命令:如何通过SSH运行PHP脚本并在退出后保持运行

load.php 
daemon load.php 
daemon load.php && 

但是,这使脚本控制台(我看到所有的输出)内执行的,当我退出机器人退出为好。

机器人作者只教我IRC命令,所以我有点失落。

回答

7

您可以安装称为屏幕的包。然后,运行screen -dm php load.php并继续使用screen -dR

这将允许您在后台运行脚本,并且仍然可以使用当前的SSH终端。您也可以注销并且该流程仍将继续运行。

+0

任何人都知道命令发送它回到背景,一旦我输入'screen -dR'? – adrianTNT 2014-11-14 01:25:16

0

这条线可以帮助你

php load.php & 
+0

我做了nohup php load.php&但是当我PM时,bot退出了,我没有看到我应该运行的其他文件: - \ – WaterBearer 2011-12-24 00:52:32

1

机会是很好的壳被发送HUP信号,它的所有正在运行的孩子,当你注销表示,“线路已经挂了”(一plain old telephone system modem参考因为你把手机挂在挂钩上......)

HUP信号会要求所有程序方便地死掉。

试试这个:

nohup load.php & 

nohup请求执行下一个程序忽略HUP信号。有关详细信息,请参阅signal(7)nohup(1)联机帮助页。 &要求shell在后台执行该程序。

Clay's answer of using screen(1)是非常真棒,绝对看看screen(1)tmux(1),但我不认为他们是这个问题的必要条件。

+0

nohug可以工作,但是在我尝试删除它之后僵尸程序退出了。必须有我遗失的东西,必须等待作者在圣诞节后回来:-( – WaterBearer 2011-12-24 00:58:48

+0

也许机器人总是会有一个终端,尝试Clay建议的“屏幕”,看看机器人是否在你身边生活PM它。 – sarnold 2011-12-24 01:00:49