我已经创建了几个PHP(CLI)服务。为了从另一个进程中取得的最好方式的PID。
但是,我无法找到这个解决方案的最佳..
不要grep
ps
的输出。相反,使用pgrep
。如果你只有一个PHP进程在运行,你可以找到它的名字的过程如下:
pgrep php;
它会返回类似49282
。
不过,既然你说有几个那些运行时,可以使用pgrep --full
区分它们。例如,如果你正在运行2个命令,php foo.php
和php bar.php
,并希望推动这一进程,foo.php
的PID:
pgrep --full '^php foo\.php$'
虽然^
和$
在所有情况下可能没有必要,他们避免假阳性匹配。有关正则表达式的详细信息,请参阅this grep
-specific documentation。
如果我没有弄错了,下面的代码会为你工作。
ps aux | grep php
最好的办法是创建子进程后要记住的PID。所有分析的完整过程列表变异可能导致错误的阳性结果。
另一种方法是,找到/记住这个过程中,谁开始的子流程和搜索的子进程。
无论如何,你给我们少的细节,以帮助更加具体。