父子进程 和标准输出 的一点问题见解

情景:在linux命令行下运行 c程序。该程序执行时实现了后台运行。该程序会定期输出打印信息到标准输出。但是如果把shell窗口关闭,转入后台的程序不再往标准输出打印。

 

问题分析:如果不退出shell命令窗口,c程序转入后台进程,制造的孤儿c进程的父进程是该shell进程。当前shell窗口被关闭,shell父进程即被关闭。孤儿c进程的标准输出描述字也一并被close了。之后c孤儿进程就是守护进程了。

  

                如果在shell下执行:  c程序 &,就不会产生这个问题。c程序的父进程直接就是守护进程。守护进程是没法关闭的,也不会有机会让c孤儿进程标准输出close。

 

 

 

 

你可能感兴趣的:(c,linux,制造,shell)