从命令行作为后台进程运行 PHP 脚本

新手上路,请多包涵

我正在尝试通过 Linux 中的命令行在后台持续运行 PHP 脚本。我已经尝试过命令 php filename.php & 但脚本执行似乎很快终止,而它应该继续运行直到进程终止。

有什么建议么?

原文由 Kyle 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 325
2 个回答

您确定脚本不包含任何错误吗?这就是通常使“ _执行很快终止_”的原因。

首先,附加:

error_reporting(E_ALL); ini_set('display_errors', 1);

在你的脚本的顶部显示它可能有的任何错误,然后你可以使用:

nohup php filename.php &

即使会话断开或用户注销,nohup 也会运行命令。

或者

nohup php filename.php >/dev/null 2>&1 &

同上但不创建 nohup.out 文件。


您还可以使用:

ignore_user_abort(1);

设置客户端断开连接是否应中止脚本执行

`set_time_limit(0);`

限制脚本的最大执行时间,在这种情况下它将一直运行到进程完成或 apache 进程重新启动。


#Notes The php and the filename.php paths may be provided as a full-path , instead of php and filename.php , you can use /usr/bin/php/full/path/to/filename.php

建议使用完整路径 以避免 文件未找到 错误。

原文由 Pedro Lobito 发布,翻译遵循 CC BY-SA 4.0 许可协议

当您的会话关闭时,该过程可能会关闭。

尝试使用 nohup php filename.php

原文由 mustafa 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏