我正在尝试重启一个自定义的IRC机器人。我尝试了各种命令:
load.php
daemon load.php
daemon load.php &&
但这会使脚本在控制台内运行(我能看到所有输出),而且当我退出时,机器人也会退出。
机器人的作者只教了我IRC命令,所以我有点迷茫。
您可以安装一个名为screen的软件包。然后,运行screen -dm php load.php
并使用screen -dR
恢复。
这将允许您在后台运行脚本,并仍然能够使用当前的SSH终端。您也可以注销,进程仍将继续运行。
很有可能当您注销时,shell会向所有正在运行的子进程发送HUP
信号,表示“线路已挂断”(这是普通电话系统调制解调器参考,当断开连接时,线路被“挂断”。您知道,因为您将手柄“挂”在钩子上...)
HUP
信号将要求所有程序方便地退出。
试试这个:
nohup load.php &
nohup
命令要求下一个执行的程序 忽略 HUP
信号。有关详细信息,请参见 signal(7)
和 nohup(1)
手册页。 &
命令要求 shell 在后台执行程序。
Clay's answer of using screen(1)
非常棒,一定要了解 screen(1)
或 tmux(1)
,但我认为它们对于这个问题并不必要。
screen
来查看在私信时是否仍然保持在线。 - sarnold这行代码可能会对你有所帮助
php load.php &
screen -dR
后将它发送回后台的命令? - adrianTNT