守护进程
概念:
什么是守护进程?
守护进程是在后台运行不受控端控制的进程,通常情况下守护进程在系统启动时自动运行守护进程的名称通常以d结尾,比如sshd、xinetd、crond等。
创建守护进程步骤:
1.调用fork(),创建新进程,它会是将来的守护进程
2.在父进程中调用exit,保证子进程不是进程组组长
3.调用setsid创建新的会话期
4.将当前目录改为根目录 (如果把当前目录作为守护进程的目录,当前目录不能被卸载,它作为守护进程的工作目录了。)
5.将标准输入、标准输出、标准错误重定向到/dev/null
setsid():
创建一个新的会话;调用者进程会是这个会话期唯一的一个进程,是唯一组的组长;调用者进程id是组id,也是会话期的id。不能用进程组组长去调用setsid函数.
守护进程api:
int daemon(int nochdir, int noclose);
功能:创建一个守护进程
参数:
nochdir:=0将当前目录更改至“/”
noclose:=0将标准输入、标准输出、标准错误重定向至“/dev/null”