Гаразд, граючи з цим, я бачу, що коли ви вбиваєте роботу, яку зупиняють (коли виконання було призупинено, але не припинено), воно не закінчиться, поки його не виведуть на перший план. Програми зазвичай зупиняються натисканням 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).
+символ першого процесу та-символ другого процесу, а символ третього немає?