我在我的linux服务器(Ubuntu)中运行命令。 例如:
screen -A -h 1500 -m -dmS test_command_one /home/SKY-users/SKY-001/./script
这个后台进度的PID是否有任何方法,屏幕名称是:test_command_one
?
ps aux | grep test_command_one:
root 6573 8.1 2.4 271688 123804 pts/4 Ss+ Oct19 3:04 /home/SKY-users/SKY-001/./ ...
我想取回这个PID:6573
PHP :(简单)
<?php
$output = shell_exec('sudo ps aux | grep test_command_one');
$array = explode("\n", $output);
echo '<pre>'.print_r($array, true).'</pre>';
?>
感谢您的帮助!
答案 0 :(得分:14)
编辑:
与@WagnerVaz的代码结合
$mystring = "test_command_one";
exec("ps aux | grep 'screen .* $mystring' | grep -v grep | awk '{ print $2 }' | head -1", $out);
print "The PID is: " . $out[0];
答案 1 :(得分:2)
试试这个:
<?php
$mystring = "test_command_one";
exec("ps aux | grep \"${mystring}\" | grep -v grep | awk '{ print $2 }' | head -1", $out);
print "The PID is: " . $out[0];
?>
编辑:结合@romaninsh的shell执行
答案 2 :(得分:1)
答案 3 :(得分:-1)
$pid = shell_exec($cmd . " && echo $!");
答案 4 :(得分:-2)
或者,只需使用:
$pid = getmypid();