1
我试图背景PHP脚本,因为它将需要超过一分钟才能完成,我不希望用户等待。php exec()Linux服务器奇怪的输出
我exec命令如下:
exec ('php -f path/to/file.php > path/to/output.log 2>&1 &');
第一个文件没有做什么,我编程,但是它做在所有的脚本,输出文件仍然临危输出:
X-Powered-By: PHP/5.6.24
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Pragma: no-cache
Content-Type: text/html; charset=UTF-8
Link: <https://example.com/wp-json/>;
rel="https://api.w.org/"
Link: <https://example.com/?p=687>; rel=shortlink
....
这个输出完全不是我的脚本应该做的,它对我来说没有任何意义。
其余的输出是一个html文档,它与我的网站有不同的链接等。
任何人都可以告诉我为什么会发生这种情况,而不是简单地运行脚本?
BTW
我使用了不同的命令如/ usr /斌/ PHP用相同的影响
UPDATE
我注意到,改变第一路径后/到/ file.php paremeter to gibberish即
exec ('php -f asdfjaskldfj > path/to/output.log 2>&1 &');
输出保持不变,不知道这是什么意思,但我相信我吨至是值得注意的
一旦你背景shell脚本,shell()'返回并且你的父脚本继续执行。这意味着父代脚本可以退出/退出/当该后台作业继续运行时完全独立。 –
oops我在我的问题中犯了一个错误,我的意思是输入exec不是shell,想到了shell_exec并且自我困惑 – electricjelly
脚本是否有shebang?作为一般指导原则,通常最好包含一个,将chmod包含到可执行文件中,然后让/ bin/sh调用它... –