如何在php中通过shell获取后台exec中运行的进程的pid
我正在用php编写一个shell,我想显示与bash相同的输出。在bash中执行如何在php中通过shell获取后台exec中运行的进程的pid,php,linux,bash,shell,Php,Linux,Bash,Shell,我正在用php编写一个shell,我想显示与bash相同的输出。在bash中执行sleep 10&将得到[1]。当我使用以下命令调用shell时,如何在php中执行相同的操作: if (preg_match("/&\s*$/", $command)) { $this->$shell_fn($token, '/bin/bash -c ' . escapeshellarg($command) . " > /
sleep 10&
将得到[1]
。当我使用以下命令调用shell时,如何在php中执行相同的操作:
if (preg_match("/&\s*$/", $command)) {
$this->$shell_fn($token, '/bin/bash -c ' . escapeshellarg($command) .
" > /dev/null");
return array(
'output' => '',
'cwd' => $path
);
}
$shell_fn是指向curl调用的shell_exec、exec或cgi脚本上的包装器的变量。甚至可以从php或使用shell获取pid吗?如果您想获取pid,可以使用获取最新后台进程的pid:
bash -c 'sleep 10 & echo $!'
我不知道如何生成外部进程,但我想您可以在这里捕获echo
输出,只需运行上面的shell命令。如果您想输入pid,可以使用获取最近后台进程的pid:
bash -c 'sleep 10 & echo $!'
我不知道如何生成外部进程,但我想您可以在这里捕获echo
输出,只需运行上面的shell命令。如果您想输入pid,可以使用获取最近后台进程的pid:
bash -c 'sleep 10 & echo $!'
我不知道如何生成外部进程,但我想您可以在这里捕获echo
输出,只需运行上面的shell命令。如果您想输入pid,可以使用获取最近后台进程的pid:
bash -c 'sleep 10 & echo $!'
我不知道如何生成外部进程,但我想您可以在这里捕获
echo
输出,只要运行上面的shell命令。这项工作:echo shell_exec(“/bin/bash-c'sleep 5>/dev/null&echo$!”代码>你知道如何获取该编号吗?这是作业编号。您可以使用作业
命令获取它。在您的例子中类似于这样:/bin/bash-c'sleep 5>/dev/null&jobs-l | grep$!'
或更准确地说/bin/bash-c'sleep 5>/dev/null&jobs-l | grep-w$!'代码>,即将-w
传递给grep。此工作:echo shell_exec(“/bin/bash-c'sleep 5>/dev/null&echo$!”代码>你知道如何获取该编号吗?这是作业编号。您可以使用作业
命令获取它。在您的例子中类似于这样:/bin/bash-c'sleep 5>/dev/null&jobs-l | grep$!'
或更准确地说/bin/bash-c'sleep 5>/dev/null&jobs-l | grep-w$!'代码>,即将-w
传递给grep。此工作:echo shell_exec(“/bin/bash-c'sleep 5>/dev/null&echo$!”代码>你知道如何获取该编号吗?这是作业编号。您可以使用作业
命令获取它。在您的例子中类似于这样:/bin/bash-c'sleep 5>/dev/null&jobs-l | grep$!'
或更准确地说/bin/bash-c'sleep 5>/dev/null&jobs-l | grep-w$!'代码>,即将-w
传递给grep。此工作:echo shell_exec(“/bin/bash-c'sleep 5>/dev/null&echo$!”代码>你知道如何获取该编号吗?这是作业编号。您可以使用作业
命令获取它。在您的例子中类似于这样:/bin/bash-c'sleep 5>/dev/null&jobs-l | grep$!'
或更准确地说/bin/bash-c'sleep 5>/dev/null&jobs-l | grep-w$!'代码>,即将-w
传递给grep。