Di monitor Sistem, apa perbedaan antara Kill Process dan End Process?

14

Ketika saya ingin mematikan suatu proses melalui System Monitor, saya diberikan 2 cara cepat, Kill Process dan End Process. Apa perbedaan antara keduanya?

Luis Alvarado
sumber

Jawaban:

9

Per manual Monitor Sistem, Anda biasanya harus menggunakan "End Process", dan hanya jika itu gagal menggunakan "Kill Process":

Anda biasanya menghentikan proses hanya jika Anda tidak dapat mengakhiri proses secara normal seperti yang dijelaskan dalam Untuk Mengakhiri Proses.

Pada tingkat teknis, ini membuat saya berpikir bahwa Proses Akhir mengirimkan SIGQUIT, yang memungkinkan proses untuk menjebak dan melakukan pembersihan jika diperlukan, tetapi jika gagal, Kill Process harus mengirim SIGKILL yang seharusnya menghentikan proses dengan kekerasan, tanpa ada kesempatan untuk pulih. Gunakan hemat!

roadmr
sumber
6
SIGTERM adalah cara "sopan" untuk menutup suatu program, yang merupakan apa yang dikirim "Proses Akhir". gnu.org/software/libc/manual/html_node/Termination-Signals.html
Rick
8

Saya juga penasaran, jadi saya hanya melihat-lihat kode sumber dan menemukan di bawah ini di application.cpp . Ada lebih banyak kode ini tapi saya pikir ini berkorelasi dengan opsi, setidaknya untuk Monitor Sistem 3.8.2.1 hingga 3.19.3:

  • Hentikan Proses = SIGSTOP ( berhenti sinyal , mari kita lanjutkan nanti dengan SIGCONT, tidak mematikan proses)
  • End Process = SIGTERM ( sinyal terminasi , cara yang benar, aplikasi dapat mencegat sinyal ini dan memulai tugas-tugas pematian seperti pembersihan file temp)
  • Kill Process = SIGKILL ( kill signal , extreme, hanya digunakan jika SIGTERM tidak berfungsi, tidak akan memulai tugas-tugas shutdown)

Lihat pertanyaan ini pada Quora tentang sinyal SIGINT, SIGTERM, SIGKILL dan SIGSTOP untuk penjelasan yang baik tentang semua sinyal kill / quit / shutdown dan perbedaannya.

Sorotan kode sumber

Elijah Lynn
sumber