PHP myscript.PHP
脚本始终在运行,定期执行某些任务(与问题无关).它不需要用户的任何输入.
运行之后,我通常按CTRL z,然后运行bg将进程置于后台,一切都很好.
如果我运行它:
PHP myscript.PHP &
脚本在启动时放在后台,但它也处于停止状态.例:
[1] 11513[1]+ Stopped PHP myscript.PHP
即使在这一点上运行bg也无济于事,我必须运行fg,然后再按CTRL z和bg使其工作.
这是PHP脚本:
<?while(true){ echo 'hi '.time()."\n"; sleep(30);}?>
我的问题是我不能直接在后台运行它,因为系统会停止它,我不明白为什么.我怎样才能解决这个问题?
更新:
我制作了相同脚本的bash版本,它可以运行并放入后台(运行而不是停止),只需使用&最后(script.sh&)
script.sh:
#!/bin/bashwhile true; do echo `date` sleep 30done
为什么PHP脚本在后台启动后停止,而bash脚本没有?
什么可能导致这种不同的行为?
例如.有一个bash脚本valecho:
#!/bin/shread valecho $val
运行它:
./valecho &
脚本将停止.
当它运行时
echo hello | ./valecho &
将正确运行和完成.
所以,检查你的PHP – 可能需要stdin的一些输入
编辑 – 基于评论:
我不是一个PHP开发人员 – 但只是尝试了下一个脚本(p.PHP)
<?PHP while(true){ echo 'hi '.time()."\n"; sleep(3); }?>
使用命令:
PHP -f p.PHP &
并且运行得很好……所以…为混乱而烦恼……
总结以上是内存溢出为你收集整理的linux – 在后台运行的命令行脚本进入停止状态全部内容,希望文章能够帮你解决linux – 在后台运行的命令行脚本进入停止状态所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)