schneller: grep PPid status |cut -f2wie in time(for((i=0;i<1000;i++));do grep PPid status |cut -f2 >/dev/null;done); frage mich, ob es etwas noch schneller gibt?
Aquarius Power
1
@ AquariusPower Da Sie fragen, ist fgrep schneller als grep. fgrep PPid status |cut -f2
jbo5112
sed ist viel schneller als grep und cut:sed -rn '/PPid/ s/^.*:\s+// p' < status
Das =Vorzeichen ist zumindest unter OS X 10.8.2 nicht erforderlich.
jtbandes
5
@jtbandes: Das hier verwendete Gleichheitszeichen unterdrückt die Ausgabe der Kopfzeile ( Linux und OS X ).
Dennis Williamson
13
Dies ist eines der Dinge, die ich lerne, vergesse, neu lerne, wiederhole. Aber es ist nützlich. Die Flagge des pstree-Befehls zeigt einen Baum mit einem Blatt bei N:
grep '^PPid:' /proc/$1/status | grep -o '[0-9]*'ist alles, was du brauchst. (Es ist sehr ungewöhnlich für Unix-Tools, um das if [ -z ]; then readDing zu tun .)
Ein etwas komplexeres Beispiel, das den Befehl eines übergeordneten Elements überprüft, das den aktuellen Prozess gestartet hat. Ändern Sie comm = in cmd =, um den vollständigen Befehl anzuzeigen
Bei einigen Terminals ist dies tatsächlich erforderlich. Um ehrlich zu sein, ich erinnere mich nicht genau, aber es hat tatsächlich ein Problem gelöst. : D
sebastian_t
1
Hier ist eine schnelle Lösung, die auch funktionieren sollte:
Das gibt nicht die übergeordnete PID an, nach der das OP gefragt hat.
Dennis Williamson
1
Führen Sie topmit beliebigen Optionen aus -u username and -p PID.
Während der topArbeitspresse fwird eine Liste der Optionen angezeigt, die in der topAusgabe angezeigt werden sollen. Die angezeigten Parameter werden in GROSSBUCHSTABEN und die Parameter, die angezeigt werden oder nicht, werden in Kleinbuchstaben angezeigt.
Durch Eingabe des Buchstabens vor dem Parameter können Sie ihn aktivieren oder deaktivieren. Für die übergeordnete Prozess-ID müssen Sie eine ID eingeben bund dann drücken Enter. Die PPID wird in der höchsten Ausgabe angezeigt.
grep PPid status |cut -f2
wie intime(for((i=0;i<1000;i++));do grep PPid status |cut -f2 >/dev/null;done)
; frage mich, ob es etwas noch schneller gibt?fgrep PPid status |cut -f2
sed -rn '/PPid/ s/^.*:\s+// p' < status
Antworten:
Befehlszeile:
Funktion:
Alias (eine Funktion ist vorzuziehen ):
Skript:
Wenn der Funktion oder dem Skript keine PID übergeben wird, wird standardmäßig die PPID des aktuellen Prozesses angezeigt.
Um den Alias zu verwenden, muss eine PID angegeben werden.
quelle
=
Vorzeichen ist zumindest unter OS X 10.8.2 nicht erforderlich.Dies ist eines der Dinge, die ich lerne, vergesse, neu lerne, wiederhole. Aber es ist nützlich. Die Flagge des pstree-Befehls zeigt einen Baum mit einem Blatt bei N:
quelle
Die übergeordnete PID befindet sich in der Shell-Variablen PPID
quelle
$PPID
nur das Problem gelöst, auf das Google diese Seite als Antwort vorgeschlagen hat.PPID
Verwenden Sie diesen Befehl, um übergeordnete IDs ( ) aller Prozesse zu drucken :Für den einzelnen Prozess, geben Sie einfach die PID, wie:
ps j 1234
.Um nur den Wert zu extrahieren, filtern Sie die Ausgabe nach
awk
:Um die PIDs aller Eltern aufzulisten, verwenden Sie
pstree
(installieren Sie sie, wenn Sie sie nicht haben):Verwenden Sie, um die übergeordnete PID des aktuellen Prozesses abzurufen
echo $$
.quelle
pstree
ist die schönste, die ich hier gesehen habe.ps j
ist großartig, weil es in vielen Distributionen erhältlich ist und sich leicht komponieren lässtLesen Sie / proc / $ PID / status. Kann leicht gescriptet werden:
quelle
grep '^PPid:' /proc/$1/status | grep -o '[0-9]*'
ist alles, was du brauchst. (Es ist sehr ungewöhnlich für Unix-Tools, um dasif [ -z ]; then read
Ding zu tun .)echo $$ | ppid | ppid | ppid
< /some/file grep | grep | ...
.grep /some/file
Unter Linux:
quelle
Ein etwas komplexeres Beispiel, das den Befehl eines übergeordneten Elements überprüft, das den aktuellen Prozess gestartet hat. Ändern Sie comm = in cmd =, um den vollständigen Befehl anzuzeigen
quelle
Hier ist eine schnelle Lösung, die auch funktionieren sollte:
quelle
Führen Sie
top
mit beliebigen Optionen aus-u username and -p PID
.Während der
top
Arbeitspresse fwird eine Liste der Optionen angezeigt, die in dertop
Ausgabe angezeigt werden sollen. Die angezeigten Parameter werden in GROSSBUCHSTABEN und die Parameter, die angezeigt werden oder nicht, werden in Kleinbuchstaben angezeigt.Durch Eingabe des Buchstabens vor dem Parameter können Sie ihn aktivieren oder deaktivieren. Für die übergeordnete Prozess-ID müssen Sie eine ID eingeben bund dann drücken Enter. Die PPID wird in der höchsten Ausgabe angezeigt.
quelle
htop
Sie inPPID
Spalte konfigurieren können .