【发布时间】:2023-03-27 21:32:02
【问题描述】:
我使用 nginx 和 php7.1-fpm。我想使用 PHP 和 exec() 运行后台进程。
我的短代码:
<?php
exec('/usr/local/bin/program > /dev/null 2>&1');
不幸的是,systemd restart php7.1-fpm程序被杀死了。
我尝试使用与运行池的用户不同的用户运行:
<?php
exec('sudo -u another_user /usr/local/bin/program > /dev/null 2>&1');
但是,这并不能解决问题 - 仍然会杀死。
我不能使用 ssh2_connect()。我该如何解决这个问题?
【问题讨论】:
-
您希望该进程在系统重新启动后仍然存在?
-
试试
exec('/usr/bin/nohup /usr/local/bin/program > /dev/null 2>&1'); -
@TarunLalwani 它不起作用。 :( php-fpm 重启后进程被杀死。
-
我认为 systemd 将在服务器重新启动时获得子进程。所以不确定你是否真的能逃脱它
-
@rtfm 否,仅在 php-fpm 重启后。
标签: php linux nginx exec background-process