Command-Line

使父程序OSX的終端列印名稱

  • May 9, 2019

我創建了一個別名來搜尋和顯示與特定使用者帳戶關聯的所有程序,這些程序似乎在我每次登錄時都會自動啟動,大約是 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

您可以嘗試使用 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}
...
...

引用自:https://unix.stackexchange.com/questions/101380