У системному моніторі, яка різниця між процесом вбивства та кінцевим процесом?


14

Коли я хочу вбити процес через System Monitor, мені представлені два швидкі способи, Kill Process і End Process. Яка різниця між цими двома?

Відповіді:


9

Згідно з посібником із системного монітора, ви зазвичай повинні використовувати "Завершити процес", і лише якщо це не вдасться використовувати "Убити процес":

Зазвичай ви припиняєте процес лише в тому випадку, якщо не можете нормально закінчити процес, як описано в Закінчення процесу.

На технічному рівні це змушує мене думати, що кінцевий процес надсилає SIGQUIT, який дозволяє процесу затримувати та виконувати очищення, якщо це потрібно, але якщо це не вдається, Kill Process повинен надіслати SIGKILL, який повинен насильно припинити процес, без шансів на відновлення. Використовуйте економно!


6
SIGTERM - це "ввічливий" спосіб закрити програму, який надсилає "End Process". gnu.org/software/libc/manual/html_node/Termina-Signals.html
Рік

9

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

  • Зупинити процес = SIGSTOP ( сигнал паузи ; давайте продовжимо пізніше SIGCONT, не вбиває процес)
  • Кінцевий процес = SIGTERM ( сигнал завершення , правильний шлях, програма може перехопити цей сигнал і ініціювати завдання закриття, такі як очищення тимчасового файлу)
  • Kill Process = SIGKILL ( сигнал вбивства , екстремальний, використовуйте лише, якщо SIGTERM не працює, не заподіює завдання вимкнення)

Дивіться це питання на Quora про сигнали SIGINT, SIGTERM, SIGKILL і SIGSTOP, щоб отримати чітке пояснення щодо всіх сигналів "знищити / вийти / вимкнути" та їх відмінностей.

Виділення вихідного коду

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.