Почему killall (иногда?) Нужно применять дважды?

Почему killall (иногда?) Нужно применять дважды? Вот пример, где "двойной" killall необходимо, чтобы закончить процесс.

Когда и почему процесс нужно было убить "дважды"? Что происходит под капотом?

1 ответ

Я собираюсь заявить о конкретной возможности приложения.

Когда вы используете killall program, SIGTERM (сигнал 15) отправляется в программу. Обычный ответ на SIGTERM является то, что программа будет завершена изящно.

Теперь как SIGTERM можно поймать, программа может иметь обработчик сигнала для SIGTERM это сделало бы некоторую задачу после получения первого SIGTERM (первый killall) и вернуться в состояние, когда второе SIGTERM просто прервет его (действие по умолчанию). Это сильно зависит от разработчика программы, а не общего случая.

Другие вопросы по тегам