有没有办法启动一个 php 脚本并让它在服务器上运行直到完成?
我用这个
php5-cgi /var/www/script.php -q &
通过 putty 连接。当我关闭它(会话)时,脚本停止!为什么它依赖于会话运行?
答案1
尝试nohup
并disown
:
nohup php5-cgi /var/www/script.php -q &
disown
答案2
如果screen
可用,请使用那。只需启动一个屏幕,在其中运行命令,分离屏幕,然后继续您的愉快旅程。
答案3
这是因为您的进程没有与挂断信号分离。请改用以下内容。
nohup php5-cgi /var/www/script.php -q
您还可以使用终端多路复用器,screen
或者tmux
如果您希望能够返回脚本输出......
答案4
还请记住,PHP 具有脚本超时限制,超过该限制后它将自动终止脚本执行。您可以max_execution_time
在您的设置中修改该设置/etc/php5/cli/php.ini
(默认为 30 秒)。