这是我的代码(Laravel)
$process= new Symfony\Component\Process\Process("pgrep java");
try {
$process->mustRun();
} catch (ProcessFailedException $e) {
return $e->getMessage();
}
return $process->getOutput();
失败了。当我尝试pgrep --help
时,它会成功。我在java运行时试过这个,而不是。这是错误:
顺便说一句,我也使用Docker,我已经尝试过:docker-compose exec workspace bash
和cd
到/var/www/laravel/public
并在java运行时执行pgrep java
不。当java正在运行时,如预期的那样,它输出PID。 pkill java
也不起作用。我想知道为什么。
答案 0 :(得分:1)
pgrep xxxx
将根据xxxx
是否正在运行进程设置状态代码,这对于检查进程是否正在运行非常有用:
if pgrep xxxx; then
...
在你的情况下它接缝让Symfony抱怨。链接流程可能会有所帮助:
pgrep java || true