1.基础知识
我们一般打开linux,输入密码后,打开的是一个session会话,自动启动bash进程(可以读取指令的进程)到前台。
当我执行一个./process进程,是一个循环打印的程序:我输入任何什么都没有反应,是因为./process被移到了前台,而bash进程放到了后台。
但是如果加了./process & 就还是让bash在前台,我们依旧可以接受指令!
1.总结:相当于只有位于前台的进程可以接受键盘文件!
2.基本指令
注意,ctrl+z后,该进程进入后台暂停,bash进程会自动的进入前台,然后接受命令!
也可以展示bash这个进程以及sid:
如果我们执行./process,然后不回收,直接关闭xshell,然后打开会发现他还是存在的,只不过父进程变成了1,被系统领养了。
讲个题外话:win+x中有个注销的选项,他的作用就是关闭windows所有的session会话。
所以不受任何用户登录和注销对的影响---守护进程化
2.守护进程化
1.接口
但是setsid是不允许组长调用的,但是一般进程组就一个(即组长)所以就很麻烦!所以:if(fork()>0)exit(0);这句话很重要,进去的父进程,出去的是子进程,所以执行完这句话后,就一定可以调用setsid这个函数了!
系统也提供给我们了接口:
一般就设置0,0,就好了。