Po uruchomieniu skryptu z wiersza poleceń powłoka odrodzi podproces dla tego skryptu. Chcę pokazać związek między procesem na poziomie terminala a jego elementami potomnymi używającymi ps
danych wyjściowych w stylu drzewa.
W jaki sposób mogę to zrobić?
Co próbowałem do tej pory
plik: script.sh
#!/bin/bash
ps -f -p$1
Następnie wywołuję skrypt z wiersza poleceń, przekazując identyfikator procesu powłoki terminalu:
$ ./script.sh $$
Chcę czegoś takiego
- proces powłoki najwyższego poziomu (terminal)
- ./script.sh
- proces
ps
samego polecenia
USER PID [..]
ubuntu 123 -bash
ubuntu 1234 \_ bash ./script.sh
ubuntu 12345 \_ ps auxf
dostaję:
PID TTY STAT TIME COMMAND
14492 pts/24 Ss 0:00 -bash
pstree
?pstree
i nie udało mi się uzyskać znaczącego wyniku, myślę, żepstree $$
po prostubash--pstree
nie wyprodukowałem dokładnie tego, czego szukałem.ps
więc czego jeszcze oczekujesz opróczpstree
?pstree -p $$
? Albo, jeśli chcesz więcej linii koncert poleceniapstree -pa $$
. Albo, jeśli chcesz pokazać wszystkie procesy nadrzędne idzie w górę,pstree -psa $$
.Odpowiedzi:
Próbować
źródło
$1
argumentowania skryptu lub$$
patrzenia na drzewo zaczynające się od bieżącej powłoki ... Czy możesz zaktualizować swoją odpowiedź, aby zawierała informacje o tym, jak uzyskać las, zaczynając od konkretny proces?Znalazłem to po przeczytaniu odpowiedzi superużytkownika , odnotowując ten komentarz
i eksperymentowanie
wynik
źródło
OUTPUT MODIFIERS: f ASCII-art process hierarchy (forest)
Możesz użyć polecenia
ps f -g <PID>
i statystyki procesu rootowania dlaPID
:źródło
Spróbuj tego:
źródło