【问题标题】:How can I find pid of my PHP job on Linux?如何在 Linux 上找到我的 PHP 工作的 pid?
【发布时间】:2019-07-04 05:03:21
【问题描述】:

我创建了几个 PHP (CLI) 服务。以最佳方式从另一个进程获取他们的 PID。

但是,我找不到最佳解决方案..

【问题讨论】:

  • 你的意思是像getmypid()这样的东西吗?
  • @ÁlvaroGonzález 问题说明“来自另一个进程”。

标签: php linux command-line-interface pid


【解决方案1】:

不要将grep 输出为ps。相反,请使用pgrep。如果您只有一个 PHP 进程在运行,您可以通过进程名称找到这些进程,如下所示:

pgrep php;

它会返回类似49282的东西。

但是,由于您声明有几个正在运行,您可以使用 pgrep --full 区分它们。例如,如果您正在运行 2 个命令,php foo.phpphp bar.php,并且您想要运行 foo.php 的进程的 PID:

pgrep --full '^php foo\.php$'

虽然^$ 可能并非在所有情况下都是必需的,但它们可以防止误报匹配。有关正则表达式的更多信息,请参阅this grep-specific documentation

【讨论】:

    【解决方案2】:

    如果我没记错的话,下面的代码会为你工作。

    ps aux | grep php
    

    【讨论】:

    • 我将grep php 更改为grep p[h]p。所以命令找不到自己。
    【解决方案3】:

    最好的方法是在创建子进程后记住 PID。分析完整过程列表的所有变体都可能导致错误的肯定。

    另一种解决方案是,查找/记住进程,谁启动了子进程并搜索子进程。

    无论如何,您给我们提供的细节更少,以帮助更具体。

    【讨论】:

      猜你喜欢
      • 2010-09-13
      • 2012-06-05
      • 2012-05-12
      • 2017-03-07
      • 2018-05-28
      • 1970-01-01
      • 2014-12-17
      • 2021-01-03
      相关资源
      最近更新 更多