我有一个脚本startbg.php:
echo `/usr/bin/php $dir/runbg.php >> $dir/logbg.txt 2>&1 &`;
我从网上打电话(通过HTTP / Apache).
它在后台进程中运行runbg.php.
但是,如果我重新启动Apache(/etc/init.d/apache2 restart),后台进程将被终止.
无论如何我可以让后台继续运行吗?
解决方法:
您可以打开一个PHP’s internal webserver的实例(从PHP 5.4.0开始,CLI SAPI提供了一个内置的Web服务器.)在我的测试中杀死httpd.exe没有影响php.exe:8000
//Tested with windows
chdir('../php');
//S = Server, listen interface 0.0.0.0 = all : port 8000
//t = Served document root
echo `php -S 0.0.0.0:8000 -t C:\\xampp\\htdocs >> C:\\xampp\\htdocs\\logbg.txt 2>&1 &`;
?>
所以可能(未经测试):
echo `/usr/bin/php -S 0.0.0.0:8000 -t /srv/www/yoursite.com/public_html >> /srv/www/yoursite.com/public_html/logbg.txt 2>&1 &$dir/runbg.php >> $dir/logbg.txt 2>&1 &`;
你不知道如何杀死它:s
标签:apache,php,background-process
来源: https://codeday.me/bug/20190709/1414058.html