Wenn ein Skript über die Eingabeaufforderung gestartet wird, erzeugt die Shell einen Unterprozess für dieses Skript. Ich möchte diese Beziehung zwischen dem Prozess auf Terminalebene und seinen untergeordneten Elementen zeigen, die ps
in einer Ausgabe im Baumstil verwendet werden.
Wie kann ich das machen?
Was ich bisher ausprobiert habe
Datei: script.sh
#!/bin/bash
ps -f -p$1
Dann rufe ich das Skript über die Befehlszeile auf und übergebe die Prozess-ID der Terminal-Shell:
$ ./script.sh $$
Was ich will, ist so etwas
- Shell-Prozess der obersten Ebene (Terminal)
- ./script.sh
- Prozess für den
ps
Befehl selbst
USER PID [..]
ubuntu 123 -bash
ubuntu 1234 \_ bash ./script.sh
ubuntu 12345 \_ ps auxf
Was ich bekomme ist:
PID TTY STAT TIME COMMAND
14492 pts/24 Ss 0:00 -bash
pstree
und konnte es nicht schaffen, eine aussagekräftige Ausgabe zu produzieren. Ich denke pstree $$
, es wurde bash--pstree
nicht genau das produziert , wonach ich gesucht habe.
ps
was erwarten Sie außer dem noch pstree
?
pstree -p $$
? Oder, wenn Sie mehr von der Kommandozeile anzeigen möchten, pstree -pa $$
. Oder, wenn Sie alle übergeordneten Prozesse anzeigen möchten, die ausgeführt werden pstree -psa $$
.
pstree
?