Когда я хочу завершить процесс с помощью системного монитора, мне предлагаются два быстрых способа: уничтожить процесс и завершить процесс. В чем разница между этими двумя?
Когда я хочу завершить процесс с помощью системного монитора, мне предлагаются два быстрых способа: уничтожить процесс и завершить процесс. В чем разница между этими двумя?
Ответы:
Согласно руководству по системному монитору, вы обычно должны использовать «Завершить процесс», и только в случае неудачи используйте «Kill Process»:
Вы обычно завершаете процесс, только если не можете завершить процесс как обычно, как описано в разделе Завершение процесса.
На техническом уровне это заставляет меня думать, что End Process отправляет SIGQUIT, что позволяет процессу перехватывать и выполнять очистку, если это необходимо, но если это не удается, Kill Process должен отправить SIGKILL, который должен принудительно завершить процесс, без шансов на восстановление. Используйте экономно!
Мне тоже было любопытно, поэтому я просто просмотрел исходный код и нашел нижеприведенное в application.cpp . В этом коде есть что-то еще, но я думаю, что они соответствуют параметрам, по крайней мере для System Monitor 3.8.2.1–3.199.3:
Смотрите этот вопрос на Quora о сигналах SIGINT, SIGTERM, SIGKILL и SIGSTOP, чтобы получить хорошее объяснение всех сигналов kill / quit / shutdown и их различий.