Гаразд, граючи з цим, я бачу, що коли ви вбиваєте роботу, яку зупиняють (коли виконання було призупинено, але не припинено), воно не закінчиться, поки його не виведуть на перший план. Програми зазвичай зупиняються натисканням Ctrl- Zна терміналі. SIGSTOP
У цьому випадку більшість терміналів надсилає вхід, але, звичайно, є й інші способи надіслати його, наприклад, з kill -STOP
або kill -19
.
Це нормальна поведінка, щоб програма не закінчувалася відразу, оскільки програма повинна працювати, щоб обробляти SIGTERM
сигнал за замовчуванням, який надсилає повідомлення kill
. Більше того, іноді після bash
надсилання SIGTERM
у фоновий процес він якось закінчується зупиненим (хоча процес SIGTERM
все ще триває).
Найбезпечніший спосіб домогтися завершення всіх завдань ( не вдаючись до цього kill -9
) - це спочатку відправити SIGTERM
звичайну kill
, а потім надіслати SIGCONT
будь-які інші завдання, наприклад:
kill $(jobs -p)
kill -18 $(jobs -p)
SIGCONT
( 18
Це номер сигналу) принесе якісь - або зупиняли роботу на передній план так , щоб вони могли обробляти , SIGTERM
як зазвичай.
Якщо всі програми не закінчуються цим, то є кілька інших сигналів, які ви можете спробувати, які зазвичай дозволяють закінчити процес, перш ніж вдаватися до цього kill -9
. Перший, який я рекомендую, SIGHUP
так як багато програм, які зазвичай блокують інші сигнали припинення, реагують на них SIGHUP
. Зазвичай він надсилається, коли керуючий термінал закривається, зокрема він надсилається, коли ssh
сеанс tty
закінчується. Багато інтерактивних програм, таких як оболонки, не реагуватимуть на інші сигнали припинення, але будуть на це, оскільки для них буде проблемою продовжувати працювати після ssh
закінчення сеансу (або після закриття терміналу управління). Спробувати це ви можете так
kill -1 $(jobs -p)
kill -18 $(jobs -p)
Звичайно, вам потрібно переконатися, що програма не зупинена, щоб вона могла обробляти сигнал. Інші сигнали припинення, які ви можете спробувати, є SIGINT
( kill -2
) і SIGQUIT
( kill -3
). Але, звичайно, користь від спроб усього діапазону зменшується і може призвести до неминучого SIGKILL
(ака kill -9
).
+
символ першого процесу та-
символ другого процесу, а символ третього немає?