Разница в использовании kill -9 с kill SIGUSR2
Какая разница в работе с использованием формата команды kill, в каком сценарии какой из них использовать.
kill -9 process-id
kill SIGUSR2 process-id
1 ответ
Если вы хотите отправить SIGUSR2
для процесса, вы бы использовали либо:
kill -SIGUSR2 $pid
kill -USR2 $pid
kill -10 $pid # This will vary with platform
Если вы хотите отправить SIGKILL
для процесса, вы бы использовали либо:
kill -SIGKILL $pid
kill -KILL $pid
kill -9 $pid
Не уверен, как ответить на ваш вопрос о "какой сценарий". Если вы хотите отправить USR2
Затем вы используете одну из трех предыдущих команд. Если вы хотите отправить KILL
Вы используете один из последних. Как правило, вы хотите избежать использования KILL
как процесс, который получает KILL
не может убирать за собой. С другой стороны, много программного обеспечения написано плохо и может быть остановлено только через SIGKILL
, Обычно считается более вежливым, чтобы отправить TERM
, затем подождите некоторое время перед отправкой TERM
второй раз, затем снова подождите перед отправкой KILL
, USR2
как правило, полезно только для программ, которые ожидают этого и ответят некоторым полезным способом. Если программа не ожидает сигнала и не было предпринято никаких действий, чтобы игнорировать его, поведение по умолчанию завершается.
Обратите внимание, что конкретный номер сигнала SIGUSR2 варьируется. В зависимости от платформы это могут быть 10, 12, 31 и, возможно, многие другие значения. Лучше избегать установки значения явно. Единственными стандартизированными номерами сигналов являются 1,2,3,6,9,14 и 15, поэтому 9 всегда SIGKILL
, но SIGUSR2
может (и имеет!) меняться.