Alle Vaterprozesse eines Prozesses anzeigen

08/05/2008 - 10:03 von Michael Schmarck | Report spam
Hoi.

Ich würde mir gerne mit EINFACHEN Mitteln auf einem Solaris 10 System,
also ohne GNU Userland, anzeigen lassen, was die Vaterprozesse eines
bestimmten Prozesses sind.

Bsp.:

In ps -ef sehe ich, das "top" làuft. top hat die pid 26918. Durch
mehrere "ps -f -p ..." aufrufe, komme ich nun zu:

$ ps -f -p 26918,20820,7637,7510,6419,6378,6245,29,1,0
UID PID PPID C STIME TTY TIME CMD
root 0 0 0 Apr 25 ? 0:10 sched
root 1 0 0 Apr 25 ? 0:13 /sbin/init
root 29 1 0 Apr 25 ? 0:00 /usr/lib/ssh/sshd -f /etc/ssh/sshd_config.with-public-key-authentication
root 6245 29 0 Apr 25 ? 0:00 /usr/lib/ssh/sshd -f /etc/ssh/sshd_config.with-public-key-authentication
mike 6378 6245 0 Apr 25 ? 0:05 /usr/lib/ssh/sshd -f /etc/ssh/sshd_config.with-public-key-authentication
mike 6419 6378 0 Apr 25 pts/1 0:00 -bash
mike 7510 6419 0 Apr 25 pts/1 0:08 screen
mike 7637 7510 0 Apr 25 ? 2:05 screen
mike 20820 7637 0 Apr 25 pts/3 0:01 -/opt/csw/bin/bash
mike 26918 20820 0 14:40:01 pts/3 5:28 top

Dazu musste ich ps insg. 10× aufrufen.

Auf einem Gentoo Linux System habe ich auch top laufen und dort habe
ich pstree verwendet. Ich weiss, das top die pid 32271 hat. Also rufe
ich auf: "pstree -pH 32271". Ergebnis (gekürzt):

├─gdm(19828)───gdm(19829)─┬─X(19832)
│ └─gnome-session(19854)─┬─gnome-panel(19922)
│ ├─gnome-terminal(19933)─┬─bash(1775)───telnet(31330)
│ │ ├─bash(3255)───ssh(31680)
│ │ ├─bash(4525)───ssh(26091)
│ │ ├─bash(5328)───ssh(8277)
│ │ ├─bash(5472)───top(32271)

Sowas àhnliches suche ich für Sun Solaris 10. Ich möchte NICHT pstree
nachinstallieren (so es denn überhaupt auf Solaris lauffàhig wàre).
Ich suche nach einer Möglichkeit, mit Hausmitteln von Solaris 10
mir die Vater PIDs/Prozesse eines bestimmten Prozesses ausgeben zu
lassen.

Was nutzt ihr da so?

Komme ich um ein "Script" drum rum, welches die Ausgabe von
"ps -o ppid -p $START_PID" so lange parsed, bis als PPID 0
ausgegeben wird?

Gruß,
Michael
 

Lesen sie die antworten

#1 Michael Schmarck
08/05/2008 - 10:10 | Warnen spam
Michael Schmarck wrote:

Hoi.

Ich würde mir gerne mit EINFACHEN Mitteln auf einem Solaris 10 System,
also ohne GNU Userland, anzeigen lassen, was die Vaterprozesse eines
bestimmten Prozesses sind.

Bsp.:

In ps -ef sehe ich, das "top" làuft. top hat die pid 26918. Durch
mehrere "ps -f -p ..." aufrufe, komme ich nun zu:


[...]
Was nutzt ihr da so?



Manchmal sieht man den Wald vor lauter Bàumen nicht...

Auf Solaris 10 gibt's ptree, und das ist gut genug.

$ ptree -a 26918
1 /sbin/init
29 /usr/lib/ssh/sshd -f /etc/ssh/sshd_config.with-public-key-authentication
6245 /usr/lib/ssh/sshd -f /etc/ssh/sshd_config.with-public-key-authentication
6378 /usr/lib/ssh/sshd -f /etc/ssh/sshd_config.with-public-key-authentication
6419 -bash
7510 screen
7637 screen
20820 -/opt/csw/bin/bash
26918 top

Danke und Sorry,
Michael

Ähnliche fragen