当前位置: 技术问答>linux和unix
在shell命令行中敲一个可执行文件,起一个进程pc,这个进程属于shell进程
来源: 互联网 发布时间:2016-04-03
本文导语: 假如shell进程被杀掉,pc会死掉吗?或者通过profile启动的pc进程会死吗? | 不会死 父进程会改成1 | shell被kill掉了,它的前台子进程也将退出,但它的后台子进程依然运行,后台子...
假如shell进程被杀掉,pc会死掉吗?或者通过profile启动的pc进程会死吗?
|
不会死
父进程会改成1
父进程会改成1
|
shell被kill掉了,它的前台子进程也将退出,但它的后台子进程依然运行,后台子进程的PPID为1.
实践后是这样的,但我还没有找到相关的文档说明.
实践后是这样的,但我还没有找到相关的文档说明.
|
如果是加&启动,程序开始又调用了setsid()就已经脱离终端了,猜的。因为加&就相当于fork一次了,父进程退出了,子进程再跑你的代码。
其实你图简单干脆只调一个daemon()就可以达到守护进程的效果。
你的子进程需要终端控制,看起来很怪。如果只是输出调试信息,没必要一定要跟终端连接起来,如果还要类shell的执行一些接口,你可以试一试libcli这个开源的库,可以为你的程序开一个telnet端口,很容易往里面注册你想要的接口。
其实你图简单干脆只调一个daemon()就可以达到守护进程的效果。
你的子进程需要终端控制,看起来很怪。如果只是输出调试信息,没必要一定要跟终端连接起来,如果还要类shell的执行一些接口,你可以试一试libcli这个开源的库,可以为你的程序开一个telnet端口,很容易往里面注册你想要的接口。