Коли сценарій запускається з командного рядка, оболонка породжує підпроцес для цього сценарію. Я хочу показати, що взаємозв'язок між процесом термінального рівня та його дітьми використовує ps
у дереві вихідний стиль.
Як я можу це зробити?
Що я спробував поки що
файл: script.sh
#!/bin/bash
ps -f -p$1
Потім я викликаю скрипт з командного рядка, що передає ідентифікатор процесу термінальної оболонки:
$ ./script.sh $$
Те, що я хочу, - це щось подібне
- процес оболонки верхнього рівня (терміналу)
- ./script.sh
- процес для
ps
самої команди
USER PID [..]
ubuntu 123 -bash
ubuntu 1234 \_ bash ./script.sh
ubuntu 12345 \_ ps auxf
Що я отримую:
PID TTY STAT TIME COMMAND
14492 pts/24 Ss 0:00 -bash
@muru Я спробував
—
the_velour_fog
pstree
і не зміг змусити його отримати значущий результат, я думаю, що це pstree $$
просто bash--pstree
не точно те, що я шукав.
Як це не те, що ви шукаєте? Ви замінили сценарій і
—
муру
ps
, що ви ще очікуєте побачити, окрім pstree
?
@muru ваше право це технічно те, що я хотів, але занадто мінімально. тобто як ти точно знаєш, на які процеси ти дивишся без PID, як ps, показує, що це таблиця?
—
the_velour_fog
pstree -p $$
? Або, якщо ви хочете більше командного рядка показують, pstree -pa $$
. Або, якщо ви хочете , щоб показати всі батьківські процеси , що відбуваються вгору, pstree -psa $$
.
pstree
?