Answers:
采用 ps -o ppid=
ps -o ppid= 2072
returns 2061
,您可以在脚本中轻松使用等。ps -o ppid= -C foo
使用command给出流程的PPID foo
。您也可以使用老式的ps | grep
:ps -eo ppid,comm | grep '[f]oo'
。ps -f 2072
返回
UID PID PPID C时间TTY STAT TIME CMD izx 2072 2061 0 07:16 S 0:00 / usr / lib / pulseaudio / pulse / gconf-helper
pstree
关系是:pstree -s -p 2072
:
init(1)───pulseaudio(2061)───gconf-helper(2072)
ppid=
PID 之后但之前的空间似乎是必需的。如果我省略它,则会得到不同的结果。
echo $PPID
如果需要此父pid的命令:
cat /proc/$PPID/comm
如果您需要完整的命令行(包括所有选项):
cat /proc/$PPID/cmdline
$PPID
由外壳定义,它是父进程的PID/proc/
,每个进程的PID都有一些差异。然后,如果您cat /proc/$PPID/comm
,则回显PID的命令名称PPID
被定义为POSIX标准的一部分,因此任何POSIX兼容的外壳都应对此进行适当设置。见pubs.opengroup.org/onlinepubs/9699919799/utilities/...
pstree
的命令名称使用,pstree
您可以按子进程名称进行搜索,并获得进程ID(PID)以及该子进程的父母,祖父母和任何子进程:
$ pstree -hp | grep sleep
|-cron(763)---cron(795)---sh(839)---display-auto-br(841)---sleep(8414)
在这种情况下,sleep
是子命令,其PID为8414
。它的父ID为841,称为display-auto-brightness
。祖父母是sh
进程ID 为的shell()839
。曾祖父母cron
的进程标识为795
。曾曾祖父母cron
的进程ID也为763
。
如果要按“流程ID” sleep
而不是名称进行搜索,可以使用:
$ pstree -hp | grep 14653
|-cron(763)---cron(795)---sh(839)---display-auto-br(841)---sleep(14653)
请注意,sleep
进程ID已更改为14653
。父级(PID 841)睡眠1分钟,醒来一秒钟,然后启动一个新sleep
命令以获取新的进程ID。这是为什么搜索sleep
比按进程ID搜索更容易的另一个原因。
该代码摘自:根据日出和日落自动调整显示亮度,并适应此问题。
要查看一直到启动过程的嵌套链,请使用PID而不是名称:
$ pstree -aps 8541
systemd,1 splash fastboot kaslr
└─cron,763 -f
└─cron,795 -f
└─sh,839 -c /usr/local/bin/display-auto-brightness
└─display-auto-br,841 /usr/local/bin/display-auto-brightness
└─sleep,8541 60
注意:又过了一分钟,sleep命令获得一个新的PID(8541)。
807
或上进行grep cron
渲染,并且会重生同一行以及更多的子级。但问题是要找到父母,而不是所有孩子。
1
。我不认为你能杀了PID 1
ps -efj
也可以用于相同的。
例如,
> ps -efj | head
UID PID PPID PGID SID C STIME TTY TIME CMD
root 1 0 1 1 0 Jul01 ? 00:00:13 /sbin/init splash
root 2 0 0 0 0 Jul01 ? 00:00:00 [kthreadd]
root 3 2 0 0 0 Jul01 ? 00:00:02 [ksoftirqd/0]
root 5 2 0 0 0 Jul01 ? 00:00:00 [kworker/0:0H]
root 7 2 0 0 0 Jul01 ? 00:06:44 [rcu_sched]
root 8 2 0 0 0 Jul01 ? 00:00:00 [rcu_bh]
root 9 2 0 0 0 Jul01 ? 00:00:00 [migration/0]
root 10 2 0 0 0 Jul01 ? 00:00:08 [watchdog/0]
root 11 2 0 0 0 Jul01 ? 00:00:08 [watchdog/1]
ps -o args ...
在结果上使用,但这有点怪味。