【问题标题】:Assigning a user label (string) to a pid?将用户标签(字符串)分配给 pid?
【发布时间】:2021-08-06 10:19:43
【问题描述】:

在我的用例中,我必须启动许多同名的进程。这让我很困惑,因为我只能通过检查 PID 来区分它们。 我想知道是否存在用户可以为此目的设置/检索的某种附加字段/信息/标签。

我已经知道我可以重命名进程,例如:

 #include <sys/prctl.h>
 prctl(PR_SET_NAME, "Test");

但我一直在寻找不更改进程名称的替代性、侵入性较小的解决方案..

【问题讨论】:

  • 当一个进程产生更多时,我使用例如:printf "%s\n" $(pidof apache2) | sort,第一个是主进程。这对你有用吗?
  • 您可以使用环境变量,每个进程使用不同的值或名称。

标签: linux pid


【解决方案1】:

你为什么想要这个?
每个进程都知道是谁启动了它,正如您在 ps -ef 的这段摘录中看到的那样:

Linux Prompt>ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 15:05 ?        00:00:00 /init
root         7     1  0 15:05 tty1     00:00:00 /init
scampsd      8     7  0 15:05 tty1     00:00:00 -bash
scampsd     80     8  0 15:08 tty1     00:00:00 ps -ef

您想要的信息在UID 列中。

与著名的top 命令相同(只是摘录):

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    1 root      20   0    8940    316    272 S   0.0   0.0   0:00.10 init
    7 root      20   0    8940    224    180 S   0.0   0.0   0:00.00 init
    8 scampsd   20   0   18212   3836   3732 S   0.0   0.0   0:00.16 bash
   81 scampsd   20   0   18920   2144   1528 R   0.0   0.0   0:00.03 top

您想要的信息在USER 列中。

所以我看不出有任何添加信息的理由,这些信息已经可用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多