2015-04-23 30 views
1

执行此代码:了shell_exec的nohup用的nohup.out

shell_exec('nohup command&'); 

或本

shell_exec('nohup command > /path/to/nohup.out 2>&1&'); 

但在这两种情况下没有的nohup.out。如何通过php运行nohup和nohup.out?

+0

第二个绝对应该已经创建了一个文件(不论是否'nohup'或'command'其实居然跑)。你确定它没有创建文件? (或者你的意思是这个文件是空的?) –

+0

你运行这个的服务器是否允许'shell_exec()'运行? – Twisty

回答

1

了shell_exec( 'nohup命令> /path/to/nohup.out 2> ');

此行将起作用。只要确保您有输出文件夹的写入权限即可。考虑你的输出文件夹是/ usr/nohup的输出

ls -l /usr/nohup-out 

应该具有写入,读取和执行权限(RWX)。如果没有,请执行以下操作:

sudo chmod -R 777 /usr/nohup-out 

现在,尝试执行php文件。它应该在/usr/nohup-out文件夹中创建一个nohup文件。

示例脚本和结果:

1. date.php:

php date.php 

3. nohup的:

<?php 
shell_exec('nohup date > /usr/nohup-out/nohup.out 2>&1&'); 
?> 

2.从终端执行PHP .out执行后的内容

周四4月23日11点30分28秒IST 2015年

+0

>只要确保您有输出文件夹的写入权限 - 这是解决方案,谢谢。 –