GNU/Linux >> Znalost Linux >  >> Linux

Jak získat rodičovské PID daného procesu v GNU/Linuxu z příkazového řádku?

Příkazový řádek:

ps -o ppid= -p 1111

Funkce:

ppid () { ps -p ${1:-$$} -o ppid=; }

Alias ​​(vhodná je funkce):

alias ppid='ps -o ppid= -p'

Scénář:

#!/bin/sh
pid=$1
if [ -z $pid ]
then
    read -p "PID: " pid
fi
ps -p ${pid:-$$} -o ppid=

Pokud funkci nebo skriptu není dodáno žádné PID, ve výchozím nastavení zobrazí PPID aktuálního procesu.

Chcete-li použít alias, musíte zadat PID.


Chcete-li vytisknout ID rodičů (PPID ) ze všech procesů použijte tento příkaz:

ps j

Pro jeden proces stačí předat PID, například:ps j 1234 .

Chcete-li extrahovat pouze hodnotu, filtrujte výstup podle awk , jako:

ps j | awk 'NR>1 {print $3}' # BSD ps
ps j | awk 'NR>1 {print $1}' # GNU ps

Chcete-li vypsat PID všech rodičů, použijte pstree (nainstalujte jej, pokud jej nemáte):

$ pstree -sg 1234
systemd(1)───sshd(1036)───bash(2383)───pstree(3007)

Chcete-li získat rodičovské PID aktuálního procesu, použijte echo $$ .


To je jedna z věcí, které se učím, zapomínám, znovu se učím, opakuji. Ale je to užitečné. Příznak ‚s‘ příkazu pstree ukazuje strom s listem na N:

pstree -sA $(pgrep badblocks)
systemd---sudo---mkfs.ext4---badblocks

Linux
  1. Jak odstranit soubory a adresáře v Linuxu z příkazového řádku

  2. Jak předat argumenty příkazového řádku běžícímu procesu na systémech unix/linux?

  3. Jak získat podřízený proces z rodičovského procesu

  1. Jak nainstalovat software z příkazového řádku Linuxu

  2. Jak získat adresu URL souboru Dropbox z příkazového řádku?

  3. Jak získám svou IP adresu z příkazového řádku?

  1. Linux – Jak zjistit rodinu architektury Intel z příkazového řádku?

  2. Název procesu z jeho pid v linuxu

  3. Jak získat PID z rozvětveného podřízeného procesu ve skriptu shellu