ces*_*are 11 php background process exec
我在我的php脚本中调用它:
exec("gutschein.php >/dev/null 2>&1 &");
Run Code Online (Sandbox Code Playgroud)
调用脚本(生成pdf并通过电子邮件发送)可以正常工作,但是进程没有在后台运行(我在gutschein.php中使用sleep语句检查了它).浏览器一直挂起,直到执行gutschein.php完成.
我还检查了以下内容:
exec("/usr/bin/php gutschein.php >/dev/null 2>&1 &");
Run Code Online (Sandbox Code Playgroud)
要么
shell_exec("/usr/bin/php gutschein.php >/dev/null 2>&1 &");
Run Code Online (Sandbox Code Playgroud)
它没有改变任何东西.该脚本实际上是在linux服务器上运行的.有谁知道我做错了什么?
您可以尝试以下 2 个命令之一来从 PHP 运行后台作业:
$out = shell_exec('nohup /usr/bin/php /path/to/gutschein.php >/dev/null 2>&1 &');
Run Code Online (Sandbox Code Playgroud)
或者
$pid = pclose(popen('/usr/bin/php gutschein.php', 'r'));
Run Code Online (Sandbox Code Playgroud)
它将在后台执行该命令并返回 PID,您可以检查使用条件$pid > 0以确保它已正常工作。