Linux

當我通過 systemctl 或 init 重新啟動服務時會發生什麼

  • January 29, 2021

我試圖了解重啟期間程序的生命週期。

例如:

如果我們發出重啟命令

  1. 它會殺死程序ID
  2. 刪除或刷新描述符中所有打開的文件。
  3. 關閉 TCP 或 Unix 套接字
  4. 然後開始 - 將觸發所有實際命令。

有人可以幫助以更好的方式理解這一點嗎?

SIGTERM將向伺服器程序發送一個信號,並期望該程序將退出。由程序本身來擷取信號並執行正常退出所需的任何操作。即程序本身應該負責刷新文件、關閉它打開的網路連接等。

如果程序沒有在超時限制內退出,它會被一個SIGKILL信號強制終止。超時的預設值為 90 秒。

引用自:https://unix.stackexchange.com/questions/631573