使终端打印父进程OSX的名称

使终端打印父进程OSX的名称

我创建了一个别名来搜索并显示与特定用户帐户关联的所有进程,这些进程似乎在我每次登录时都会自动启动,大约有 15 个,通过排除过程,我找到了父进程。基本上我希望显示别名,只是显示父进程而不是整个列表,我知道我必须通过管道,但除此之外我不确定。

例子:

ps -u *someuser* | grep <parent process name/PID>

编辑#1

这与我所指的进程树并不完全相关,但我打开了一个手册页,以便可以粘贴关联的进程:

966 man pidof --- 
969 sh -c (cd '/usr/local/share/man' && (echo ".ll 12.8i"; echo ".nr LL 12.8i"; /usr/bin/gunzip -c '/usr/local/share/man/ --- 
970 sh -c (cd '/usr/local/share/man' && (echo ".ll 12.8i"; echo ".nr LL 12.8i"; /usr/bin/gunzip -c '/usr/local/share/man/ --- 975 sh -c (cd '/usr/local/share/man' && (echo ".ll 12.8i"; echo ".nr LL 12.8i"; /usr/bin/gunzip -c '/usr/local/share/man/ --- 
977 /usr/bin/less -is` how `kill 966` kills all the rest

答案1

您可以尝试使用 Unix 命令pstree来获取树形结构中的进程名称列表。

例子

$ pstree
init-+-NetworkManager-+-dhclient
     |                `-2*[{NetworkManager}]
     |-abrtd
     |-acpid
     |-atd
     |-auditd-+-audispd-+-sedispatch
     |        |         `-{audispd}
     |        `-{auditd}
     |-autossh---ssh---ssh
     |-avahi-daemon---avahi-daemon
     |-bonobo-activati---2*[{bonobo-activat}]
     |-chrome-+-3*[chrome]
     |        |-chrome-sandbox---chrome-+-chrome-+-25*[chrome---3*[{chrome}]]
     |        |                         |        |-4*[chrome---4*[{chrome}]]
     |        |                         |        `-chrome---6*[{chrome}]
     |        |                         `-nacl_helper_boo
     |        `-31*[{chrome}]
...
...

如果您只想与特定用户相关的进程,您还可以提供用户名。

例子

$ pstree saml
autossh---ssh---ssh

bonobo-activati---2*[{bonobo-activat}]

chrome-+-3*[chrome]
       |-chrome-sandbox---chrome-+-chrome-+-25*[chrome---3*[{chrome}]]
       |                         |        |-4*[chrome---4*[{chrome}]]
       |                         |        `-chrome---6*[{chrome}]
       |                         `-nacl_helper_boo
       `-31*[{chrome}]

clock-applet---{clock-applet}
...
...

相关内容