Почему killall (иногда?) Нужно применять дважды? Вот пример , где для завершения процесса необходим «двойной» killall
.
Когда и почему процесс нужно было убить «дважды»? Что происходит под капотом?
Я собираюсь заявить специализированную возможность.
то, Когда Вы используете killall program
, SIGTERM
(сигнал 15), отправляется в программу. Обычный ответ на SIGTERM
состоит в том, что программа вышла бы корректно.
Теперь как эти SIGTERM
catchable, программа может иметь обработчик сигналов для SIGTERM
, который сделал бы некоторую задачу после получения первого SIGTERM
(сначала killall
) и возвратился бы к состоянию, где второе SIGTERM
только завершит его (действие по умолчанию). Это очень зависит от разработчика программы, конечно, и не общего случая.