Як йдеться в повідомленні, він посилає сигнал всім членам процесу групи абонента.
Групи процесів використовуються для здійснення управління роботою в оболонці (їх можна використовувати для інших речей, але інтерактивне управління роботою оболонки є основною причиною їх існування).
Ви помітите, що під час введення Ctrl-Cвбиваються всі процеси поточних завдань, а не лише той, який їх запустив. Крім того, це не вбиває фонових завдань.
Це досягається з групами процесів. Завдання - це група процесів, запущених оболонкою, яку оболонка може розміщувати у фоновому режимі чи передньому плані (встановлювати як групу переднього плану терміналу чи ні) та вбивати в цілому.
Ви можете дізнатися про ідентифікатори групи процесів та ідентифікатори сеансів за допомогою ps -j( jдля Jконтролю).
Щоб убити групу процесів PGID $x, виконайте такі дії:
kill -- "-$x"
kill 0 вбиває групу процесу абонента.
Зауважте, що якщо ви зробите:, /bin/kill 0оболонка почне нове завдання для виконання цієї killкоманди, такkill вбиватиме себе само.
killЗазвичай це вбудована оболонка, тому killце знищить процесну групу оболонки.
Однак, коли оболонка є інтерактивною, це процес управління групами процесів, тому, як правило, немає іншого процесу в групі процесу оболонки. Усі процеси, розпочаті оболонкою, перебувають в інших групах процесів:
$ sleep 1000 &
[1] 22746
$ ps -j
PID PGID SID TTY TIME CMD
22735 22735 22735 pts/23 00:00:00 zsh
22746 22746 22735 pts/23 00:00:00 sleep
22749 22749 22735 pts/23 00:00:00 ps
Вгорі sleepі psзнаходяться у двох різних групах процесів, одна на задньому плані, одна на передньому плані, і вони відрізняються від групи процесів оболонки.
Ти можеш зробити:
(man kill & sleep 1; ps -j; kill 0)
Інтерактивна оболонка запустила б нову групу процесів для цієї підпакеті, і обидві підскладки і людина (а також інші команди, розпочаті людиною, як ваш пейджер, гроф ...) були б у тій самій групі процесів, і kill 0там працюватиме. ( sleepВище, щоб дати досить часу для пейджера , щоб почати , щоб ми могли бачити його в ps -jвиході , перш ніж вбити його).
SIGTERMпроцес, який він зробив.manКоманда вибрала його ігнорувати.