0
因此,一般来说,您可以在php中使用exec('MyCommand &> /dev/null &')
,而MyCommand
将作为单独进程执行,因此您的主要PHP执行可以继续进行。将Laravel Artisan命令作为一个新进程运行
奇怪的是,如果您尝试使用Laravel的Artisan
来做这件事,那么事情就会变得横向。例如,令人惊讶的是,在这个过程中,exec('php artisan command &> /dev/null &')
的结果仍然悬而未决,直到工匠指挥结束。如果将artisan命令封装在bash脚本中,它将根本不会执行。
这是为什么,我该如何在新的分离过程中执行工匠命令?
可悲的是,我不认为我可以用'pcntl_fork()'从Apache模块调用,按[这]( http://stackoverflow.com/questions/16826530/pcntl-fork-returning-fatal-error-call-to-undefined-function-pcntl-fork)问题。 – MirroredFate 2014-09-25 18:36:38
你确定这不仅仅是因为你的php.ini文件禁用了pcntl_ *函数吗? – 2014-09-25 18:45:43
他们被禁用了,我让他们出于好奇 - 然而,我发现了[this](http://stackoverflow.com/a/14737821/771665)答案的第一条评论,它明确指出这些功能是禁用的在Apache配置中,因为它们不起作用。 – MirroredFate 2014-09-25 23:29:59