如何通过 SSH 运行 PHP 脚本并在我退出后保持运行
Posted
技术标签:
【中文标题】如何通过 SSH 运行 PHP 脚本并在我退出后保持运行【英文标题】:How to run a PHP script via SSH and keep it running after I quit 【发布时间】:2012-01-27 03:44:28 【问题描述】:我正在尝试重新启动自定义 IRC 机器人。我尝试了各种命令:
load.php
daemon load.php
daemon load.php &&
但这会使脚本在控制台内执行(我看到所有输出),并且当我退出机器人时也会退出。
机器人作者只教了我 IRC 命令,所以我有点迷茫。
【问题讨论】:
【参考方案1】:您可以安装一个名为 screen 的软件包。然后,运行screen -dm php load.php
并使用screen -dR
继续
这将允许您在后台运行脚本,并且仍然可以使用您当前的 SSH 终端。您也可以注销,该进程仍将运行。
【讨论】:
我输入screen -dR
后,任何人都知道将其发送回后台的命令吗?【参考方案2】:
当您注销时,shell 很有可能会向其所有正在运行的子进程发送 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)
,但我认为它们对于这个问题没有必要。
【讨论】:
nohug 有效,但在我尝试 PM 后机器人退出。一定有什么我错过了,得等作者圣诞节后回来:-( 也许机器人希望总是有一个终端。试试 Clay 的screen
推荐,看看当你 PM 时机器人是否还活着。【参考方案3】:
这条线可能对你有帮助
php load.php &
【讨论】:
我做了 nohup php load.php & 但是当我 PM 时机器人退出了,我看不到我应该运行什么其他文件:-\以上是关于如何通过 SSH 运行 PHP 脚本并在我退出后保持运行的主要内容,如果未能解决你的问题,请参考以下文章
即使在我注销 SSH 后,如何在后台运行 Python 脚本?