314
PHP异步执行shell命令
/**
* 注意要对$cmd过滤非法字符。
*/
function execAsync($cmd, $workDir = null){
exec((is_dir($workDir) ? "cd $workDir;" : "") . "nohup $cmd > /dev/null & echo $!", $output);
return $output[0];// return Pid
}
/**
* 前面返回的pid可以用来终止后台进程
*/
function killCmd($pname, $pid) {
exec("ps -ef|grep $pname|grep -v grep|awk '{print $2}'|grep $pid|xargs kill -9");
}