В чем разница между процессом Kill Process и End Process в системном мониторе?

Когда я хочу завершить процесс с помощью системного монитора, мне предлагаются два быстрых способа: уничтожить процесс и завершить процесс. В чем разница между этими двумя?

14
задан 3 February 2018 в 18:31

2 ответа

Мне было любопытно также, таким образом, я просто просмотрел исходный код и нашел ниже в application.cpp. Существует больше к этому коду, но я думаю, что они коррелируют к опциям, по крайней мере, для Системного монитора 3.8.2.1 до 3.19.3:

  • Остановите Процесс = SIGSTOP (сигнал паузы, позвольте нам, Вы продолжаете позже с SIGCONT, не уничтожает процесс),
  • Процесс конца = SIGTERM (сигнал завершения, правильный путь, приложение может прервать этот сигнал и инициировать задачи завершения работы, такие как временная очистка файла),
  • Уничтожьте Процесс = SIGKILL (сигнал уничтожения, экстремальное значение, только используйте, если SIGTERM не будет работать, то не будет инициировать задачи завершения работы),

Посмотрите этот вопрос на Quora о SIGINT, SIGTERM, SIGKILL и сигналах SIGSTOP для хорошего объяснения на всех уничтожить/выйти/завершить работу сигналах и их различиях.

Source code highlight

8
ответ дан 3 February 2018 в 18:31

Согласно руководству по системному монитору, вы обычно должны использовать «Завершить процесс», и только в случае сбоя используйте «Процесс уничтожения»:

Обычно вы прекращаете процесс, только если не можете завершить процесс обычно, как описано в «Завершение процесса».

На техническом уровне это заставляет меня думать, что End Process отправляет SIGQUIT, что позволяет процессу перехватывать и выполнять очистку, если это необходимо, но если это не удается, Kill Process должен отправить SIGKILL, который должен принудительно завершить процесс, без шансов на выздоровление. Используйте экономно!

0
ответ дан 3 February 2018 в 18:31

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

Похожие вопросы: