殭屍程序、孤兒程序和守護程序


殭屍程序、孤兒程序和守護程序的詳細資訊如下:

殭屍程序

殭屍程序是指執行已完成但仍在程序表中保留條目的程序。殭屍程序通常發生在子程序中,因為父程序仍然需要讀取其子程序的退出狀態。一旦使用 wait 系統呼叫完成此操作,殭屍程序就會從程序表中刪除。這稱為“回收”殭屍程序。

演示殭屍程序建立和終止的圖表如下所示:

Zombie Process in Linux

殭屍程序不使用任何系統資源,但會保留其程序 ID。如果存在大量殭屍程序,則所有可用的程序 ID 都會被它們獨佔。這會阻止其他程序執行,因為沒有可用的程序 ID。

孤兒程序

孤兒程序是指即使其父程序已終止或完成仍在執行的程序。孤兒程序可以有意或無意地建立。

有意建立的孤兒程序在後臺執行,無需任何手動支援。這通常用於啟動無限執行的服務或在無人值守的情況下完成長時間執行的作業。

無意建立的孤兒程序是在其父程序崩潰或終止時建立的。可以使用程序組機制避免無意建立的孤兒程序。

守護程序

守護程序是使用者無法直接控制的後臺程序。此程序通常在系統引導時啟動,並在系統關閉時終止。

通常,守護程序的父程序是 init 程序。這是因為在父程序派生守護程序並終止後,init 程序通常會採用守護程序。

守護程序名稱通常以 d 結尾。Unix 中的一些守護程序示例如下:

  • crond

    這是一個在後臺執行作業的作業排程程式。

  • syslogd

    這是系統記錄器,它實現了系統記錄功能並收集系統訊息。

  • httpd

    這是處理超文字傳輸協議的 Web 伺服器守護程序。

  • dhcpd

    此守護程序動態配置使用者的 TCP/IP 資訊。

更新於:2020年1月31日

5K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.