Когда скрипт запускается из командной строки, оболочка порождает подпроцесс для этого скрипта. Я хочу показать эту связь между процессом на уровне терминала и его дочерними элементами, используя 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
?