
& 放在命令后面表示设置此进程为后台进程
默认情况下,进程是前台进程,这时此进程(命令执行相当于本质是开启一个进程)就把Shell给占据了,我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个'&'实现这个目的。
php 代码中可以这样用
exec('/alidata/server/php/bin/php index.php Index/XXX/XXX > /dev/null &');
如果是Windows 则换个函数 还需要判断一下系统
建议使用popen和pclose代替exec。同时需要注意php是否添加了环境变量。
$cmd = 'php thread-fake.php '; if(strtoupper(substr(PHP_OS,0,3)) == 'WIN') { pclose(popen('start /B '.$cmd, 'r')); }else { pclose(popen($cmd.' > /dev/null &', 'r')); }