Linux守护进程

来源:互联网 发布:移动蜂窝数据设置4g 编辑:程序博客网 时间:2024/05/15 22:47

最近研究linux守护进程的写法,在这里做个备份:

示例源代码:

#include <stdio.h>#include <unistd.h>#include <signal.h>int main(){pid_t pid;/*第一次,脱离主进程的进程组*/if((pid = fork()) < 0){return -1;}else if(pid > 0){/*主进程退出*//*exit(0);*/_exit(0);}/*创建session前进程继承父进程的进程组*//*创建一个新的会话session后*//*当前进程变为新的会话的会话头进程*//*以及新的进程组的进程组头进程*/if(setsid() < 0){return -1;}/*当会话头进程(即首次fork产生的子进程)终止时*//*其会话中的所有进程(即再次fork产生的子进程)*//*都会收到SIGHUP信号*/signal(SIGHUP, SIG_IGN);/*第二次fork的目的*//*新的子进程不在是一个会话头进程*//*确保子进程将来即使打开一个终端设备*//*也不会自动获得控制终端*/if((pid = fork()) < 0){return -1;}else if(pid > 0){_exit(0);}while(1){printf("while .\n");sleep(1);}return 0;}



原创粉丝点击