一尘不染

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

linux

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

有什么建议么?


阅读 365

收藏
2020-06-07

共1个答案

一尘不染

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

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进程重新启动。


笔记

phpfilename.php路径可以被设置为一个 完整路径
,而不是phpfilename.php,你可以使用/usr/bin/php/full/path/to/filename.php
建议使用完整路径, 以避免 找不到文件 错误。

2020-06-07