Если вы запустили какой-то процесс в терминале (например, gedit), то идентификатор процесса (PID) (из bash) и идентификатор родительского процесса (PPID) (из gedit) для этих двух процессов будут одинаковыми. Это можно увидеть на выходе
ps -ef
команда. Чтобы сделать его более читабельным, давайте сначала «передадим» вывод, чтобы grep
найти PID всех запущенных в настоящее время процессов «bash», а затем снова передаем «по конвейеру» awk
. В awk
выбирает только PID и имя процесса полей (поле 2 и 8) , и выводит его на экран.
ps -ef | grep bash | awk '{print $2 ": " $8}'
Число на выходе - PID. Вы будете использовать его, чтобы узнать, какой процесс был запущен в терминале с этим PID. Обратите внимание, что может быть более одной строки вывода, если у вас открыто более одного терминала. Теперь, чтобы найти «дочерние» процессы (если таковые имеются) этих терминальных сессий, мы можем использовать эту команду:
ps -ef | awk '{if ($3 == EnterPID) print $2 ": " $8;}'
Вы должны ввести номер PID вместо EnterPID в последней команде. Если для «bash» существует более одного PID, вы должны попробовать их все.
Последняя команда просто просматривает выходные данные ps -ef
и ищет, совпадают ли PID (который вы нашли из предыдущей команды) и PPID для любого процесса.
Больше информации:
человек пс
человек awk
screen
,tmux
,script
,ssh
,mc
и перевернул панели от, или просто другой оболочки , например , набравbash
, или что - то вдоль этих линий. Нажмите Ctrl + D или введите,exit
чтобы выйти из вашей оболочки, вы увидите, где вы оказались.