孤儿进程 目录 解决办法 “孤儿进程”的应用 参见 参考 导航菜单GNU C Library ManualDesign and Implementation of Operating Systemnohup(1) - Linux man page

操作系统进程Unix


父进程进程类UNIX操作系统initsystemd进程组SIGHUPRPC守护进程





在操作系统领域中,孤儿进程指的是在其父进程执行完成或被终止(英语:exit (operating system))后仍继续运行的一类进程。




目录





  • 1 解决办法

    • 1.1 “收养”


    • 1.2 进程组


    • 1.3 远程调用的情况



  • 2 “孤儿进程”的应用


  • 3 参见


  • 4 参考




解决办法



“收养”



在类UNIX操作系统中,为避免孤儿进程退出时无法释放所占用的资源而僵死,任何孤儿进程产生时都会立即为系统进程init或systemd自动接收为子进程,这一过程也被称为“收养”(英语:re-parenting)[1]。在此需注意,虽然事实上该进程已有init作为其父进程,但由于创建该进程的进程已不存在,所以仍应称之为“孤儿进程”。



进程组


因为父进程终止或崩溃都会导致对应子进程成为孤儿进程,所以也无法预料一个子进程执行期间是否会被“遗弃”。有鉴于此,多数类UNIX系统都引入了进程组以防止产生孤儿进程:在父进程终止后,用户的Shell会将父进程所在进程组标为“孤儿进程组”,并向终止的进程下属所有子进程发出SIGHUP信号,以试图结束其运行,如此避免子进程继续以“孤儿进程”的身份运行[2]。



远程调用的情况


RPC过程中也会产生孤儿进程。例如,若客户端进程在发起请求后突然崩溃,且对应的服务器端进程仍在运行,则该服务器端进程就会成为孤儿进程。这样的孤儿进程会浪费服务器的资源,甚至有耗尽资源的潜在危险,但也有对应的解决办法[3]:


  1. 终止机制:强制杀死孤儿进程(最常用的手段);

  2. 再生机制:服务器在指定时间内查找调用的客户端,若找不到则直接杀死孤儿进程;

  3. 超时机制:给每个进程指定一个确定的运行时间,若超时仍未完成则强制终止之。若有需要,亦可让进程在指定时间耗尽之前申请延时。


“孤儿进程”的应用


除此之外,用户也可能会刻意使进程成为孤儿进程,以使之与用户会话脱钩,并转至后台运行。这一做法常应用于启动需要长时间运行的进程,也即守护进程[4]。另外,UNIX命令nohup(英语:nohup)也可以完成这一操作[5]。



参见


  • 僵尸进程

  • 守护进程


参考




  1. ^ Robert Love. Linux Kernel Development. Novell Press. 


  2. ^ GNU C Library Manual. GNU Project.  |chapter=被忽略 (帮助)


  3. ^ Er. Vivek Sharma, Er. Manish Varshney, Shantanu Sharma. Design and Implementation of Operating System. Laxmi Publication Pvt. Ltd. 


  4. ^ 杜华. 8.2.1 实现守护进程的步骤. Linux编程技术详解. 人民邮电出版社. 2007. 


  5. ^ nohup(1) - Linux man page. 







Popular posts from this blog

瀋陽號驅逐艦 目录 接收與服役 配置反潛直升機 武進三型性能升級 歷史 除役 參考資料 外部連結 导航菜单Taiwan Air Power海疆老兵-陽字號驅逐艦沿革World Navies Today: Taiwan (Republic of China)DD-839 USS POWER编

波兰旗帜列表 目录 国旗 军旗 其他制服部门旗帜 特别国家机构船只 参考文献 外部链接 导航菜单Polskie flagi, chorągwie, bandery... [波兰旗帜、条幅、船旗等]原始内容Ustawa z dnia 31 stycznia 1980 r. o godle, barwach i hymnie Rzeczypospolitej Polskiej oraz o pieczęciach państwowychZarządzenie Ministra Obrony Narodowej z dnia 14 grudnia 2005 r. zmieniające zarządzenie w sprawie szczegółowych zasad używania znaków Sił Zbrojnych Rzeczypospolitej Polskiej oraz ustalenia innych znaków używanych w Siłach Zbrojnych Rzeczypospolitej PolskiejZarządzenie Ministra Obrony Narodowej z dnia 29 stycznia 1996 r. w sprawie szczegółowych zasad używania znaków Sił Zbrojnych Rzeczypospolitej Polskiej oraz ustalenia innych znaków używanych w Siłach Zbrojnych Rzeczypospolitej PolskiejUstawa z dnia 19 lutego 1993 r. o znakach Sił Zbrojnych Rzeczypospolitej PolskiejHistoria Marynarki Wojennej RP [波兰海军史]Rozporządzenie Ministra Spraw Wewnętrznych i Administracji z dnia 12 kwietnia 2002 r. w sprawie wzoru flagi oraz oznakowania jednostek pływających i statków powietrznych Straży GranicznejRozporządzenie Ministra Spraw Wewnętrznych i Administracji z dnia 18 kwietnia 2005 r. w sprawie wzoru flagi oraz oznakowania jednostek pływających i statków powietrznych PolicjiRozporządzenie Ministra Infrastruktury z dnia 21 października 2005 r. w sprawie wzorów flag dla statków morskich na oznaczenie pełnionej specjalnej służby państwowej oraz okoliczności i warunków ich podnoszenia波兰旗帜波兰编

Indenting and Dedenting ASP code with Python