Якщо ви запустили якийсь процес у терміналі (наприклад, gedit), ніж ідентифікатор процесу (PID) (bash) і батьківський процес ID (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
щоб вийти з оболонки, ви побачите, де ви опинитесь.