duangan6133
duangan6133
2016-11-02 06:02

Symfony Process pgrep失败

Here's my code(Laravel)

$process= new Symfony\Component\Process\Process("pgrep java");
try {
    $process->mustRun();
} catch (ProcessFailedException $e) {
    return $e->getMessage();
}
return $process->getOutput();

it fails. When I try pgrep --help it succeeds. I tried this when java is running and not. This is the error: enter image description here

I also use Docker by the way, and I've already tried: docker-compose exec workspace bash and cd to /var/www/laravel/public and executed pgrep java both when java is running and not. When java is running, as expected, it outputs the PID. pkill java also doesn't work. I wonder why.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • douyamitong57935 douyamitong57935 5年前

    pgrep xxxx will set a status code accordingly to whether or not xxxx is a running process, this is a useful to check if a process is running:

    if pgrep xxxx; then
      ...
    

    In your case it seams to get Symfony to complain. Chaining the processes might help:

    pgrep java || true 
    
    点赞 评论 复制链接分享