殭屍流程是什麼意思

"殭屍流程"(Zombie Process)是操作系統中一個術語,用來描述一種特殊的進程狀態。在 Unix 和類 Unix 操作系統(如 Linux、Mac OS X)中,當一個進程結束時,它的子進程通常會被父進程(init 進程,即 PID 為 1 的進程)接管。然而,如果一個進程結束了,但是它的父進程沒有正確地清理它,或者父進程已經結束但沒有將子進程的結束狀態傳遞給 init 進程,那麼這個已經結束的進程就會變成一個殭屍進程。

殭屍進程通常不會佔用任何資源,因為它們已經結束,但是它們的進程描述符(process descriptor)仍然存在於操作系統的進程表中,這意味著操作系統仍然會為它們保留一些記憶體空間。殭屍進程也不會執行任何任務,因為它們已經結束,但是它們的存在可能會導致操作系統的進程表變得混亂,並且可能會消耗系統資源。

為了避免殭屍進程的產生,父進程應該正確地清理它們的子進程,或者至少在它們結束時將它們的結束狀態傳遞給 init 進程。在 Unix 和類 Unix 操作系統中,這通常通過調用 waitpid() 系統調用來實現,這個調用可以等待子進程結束並收集它們的結束狀態。如果一個進程沒有正確地清理它的子進程,那麼可以使用 ps 命令來查看系統中是否存在殭屍進程,通常它們會顯示為 "Zombie" 狀態。