在命令行上运行以下命令时,它将暂停,直到我发出 fg 命令:
/usr/bin/php -r 'phpinfo();' &
无论 PHP 代码是否包含在 shebang 为#!/usr/bin/php
.
我正在运行 CentOS 和 bash shell。
答案1
在后台运行作业时,没有特定于 PHP 的方法。广泛接受的方法是:
用一个
screen
。安装screen
(如果尚未安装),然后在屏幕下运行 PHP 脚本。您可以随时脱离screen
并注销计算机,脚本将继续运行。这里是在线提供的数百个有关如何使用screen
.使用
nohup
。用法是:
nohup <yourPHPcommand> &
当您注销时,这nohup
将使您的脚本对 HANGUP 信号“说不”,因此,即使您注销后,您的 PHP 脚本也将继续运行。唯一的问题是您将无法将该作业/流程带到前台并查看输出(如果这对您很重要)。您可以将输出重定向到文件并查看从该文件打印出的内容。
在以上两个中,我建议您使用screen
.您可以随时连接到屏幕并控制该过程,就像您在前台启动时一样。
PS:- 运行末尾带有“&”号的脚本&
确实会将其置于后台,但当您注销终端时,脚本/进程会被终止。