Apakah itu karena buruh pelabuhan menghentikan upaya untuk menghentikan proses yang berjalan di dalam wadah dengan cara yang benar, sementara buruh pelabuhan akan mengirimkan sinyal bunuh?
Pada dasarnya ya, perbedaannya halus, tetapi dijelaskan dalam referensi Baris Perintah :
- buruh pelabuhan berhenti : Hentikan wadah berjalan ( kirim SIGTERM, dan kemudian SIGKILL setelah masa tenggang ) [...] Proses utama di dalam wadah akan menerima SIGTERM, dan setelah masa tenggang, SIGKILL. [penekanan milikku]
- kill buruh pelabuhan : Bunuh kontainer yang sedang berjalan ( kirim SIGKILL, atau sinyal yang ditentukan ) [...] Proses utama di dalam kontainer akan dikirim SIGKILL, atau sinyal apa pun yang ditentukan dengan opsi - sinyal. [penekanan milikku]
Jadi stop
upaya untuk memicu shutdown anggun dengan mengirimkan sinyal POSIX standar SIGTERM
, sedangkan kill
hanya membunuh proses secara default (tetapi juga memungkinkan untuk mengirim sinyal lain):
Sinyal SIGTERM dikirim ke suatu proses untuk meminta penghentiannya. Berbeda dengan sinyal SIGKILL, sinyal dapat ditangkap dan ditafsirkan atau diabaikan oleh proses. Hal ini memungkinkan proses untuk melakukan penghentian bagus melepaskan sumber daya dan menyimpan keadaan jika perlu. Perlu dicatat bahwa SIGINT hampir identik dengan SIGTERM.
Meskipun tidak dipaksakan, proses umumnya diharapkan untuk menangani dengan SIGTERM
anggun dan melakukan hal yang benar tergantung pada tanggung jawab mereka - ini dapat dengan mudah gagal karena upaya shutdown yang anggun membutuhkan waktu lebih lama daripada masa tenggang, yang merupakan sesuatu yang perlu dipertimbangkan jika integritas data terpenting (misalnya untuk basis data); lihat misalnya SIGTERM Mayor Hayden vs. SIGKILL untuk penjelasan yang lebih terperinci:
Aplikasi dapat menentukan apa yang ingin dilakukan setelah SIGTERM diterima. Sementara sebagian besar aplikasi akan membersihkan sumber daya mereka dan berhenti, beberapa mungkin tidak. Aplikasi dapat dikonfigurasikan untuk melakukan sesuatu yang sama sekali berbeda ketika SIGTERM diterima. Juga, jika aplikasi dalam keadaan buruk, seperti menunggu disk I / O, itu mungkin tidak dapat bertindak pada sinyal yang dikirim.