我怎样才能find一个特定的PHP过程与pgrep(monit相关)

我在后台运行了一些php进程,monit作为他们的经理。 我目前的monitconfiguration如下所示:

check process myprocess1 matching "process1.php" start program = "/usr/bin/php /path/to/process1.php > /var/log/process1.log" stop program = "/usr/bin/pkill /path/to/process1.php" 

(再一次记住,有几个这样的进程。)这对于启动进程是有效的,但是对于停止这些进程是非常有用的 – 停止尝试失败,monat“未能停止”消息。 我目前对这种情况的诊断是失败,因为pkill没有find进程:执行类似的pgrep /path/to/process1.php无法find任何东西。 ps ax显示,除其他外:

5307 ? S 0:00 /usr/bin/php /path/to/process1.php

同时, pgrep php成功find了所有php进程的pid,但是我只想要杀死其中的一个。

所以:有没有办法在这里得到我想要的? 我并不是想用pkill,但似乎是很好的想法。

检查pgrep / pkill的f标志完整。

-f, – 完全使用完整进程名称进行匹配

我不是100%肯定,这将有助于你,但如果你已经有了process1.php这将帮助你杀死适当的程序。

例如:我运行“php rob / conmon.php”,pgrep -f“php rob / conmon.php”返回正确的PID和pkill -f“php rob / conmon.php”等价地杀死了PID。

希望这可以帮助!