守护进程
来源:互联网 发布:魔力宝贝满档数据 编辑:程序博客网 时间:2024/05/01 10:47
所有守护进程都以超级用户(用户 ID为0)的优先权运行
没有一个守护进程具有控制终端—终端名称设置为问号(?)、终端前台进程组ID设置为-1
所有这些守护进程的父进程都是init进程(进程D为1) /* 以下示例仅作参考不做正确保证*/
没有一个守护进程具有控制终端—终端名称设置为问号(?)、终端前台进程组ID设置为-1
所有这些守护进程的父进程都是init进程(进程D为1) /* 以下示例仅作参考不做正确保证*/
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<fcntl.h>#include<sys/types.h>#include<unistd.h>#include<sys/wait.h>#define MAXFILE 65535int main() {pid_t pc;int i, fd, len;char *buf = "This is a Dameon\n";len = strlen(buf);pc = fork();if(pc < 0) {printf("error fork\n");exit(1);}else if(pc > 0)exit(0); // 关闭父进程,我们需要的进程不可以是一个进程组的首进程,这是 setsid 的条件setsid(); /* 调用 setsid 以创建一个新的会话,并担任该会话组的组长。调用 setsid 作用有三个: 成为新对话期的首进程,成为一个新进程组的首进程,脱离控制终端。 (会话组是一个或多个进程组的集合) */chdir("/");umask(0); //重设文件权限掩码for(i = 0; i < MAXFILE; i++)close(i);while(1) {if((fd = open("/tmp/dameon.log", O_CREAT|O_WRONLY|O_APPEND, 0600)) < 0) {perror("open"); /*void perror(const char *s); perror ("open_port");用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串*/exit(1);}write(fd, buf, len+1);close(fd);sleep(10);}exit(0);}
- 守护进程守护自身
- 守护线程、守护进程
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- 进程守护
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- POJ 1423
- 题目24: 素数距离问题
- 让你乐的死去活来的论坛签名
- 给你生活的忠告
- 武侠电视剧规律
- 守护进程
- 基于stm32f103zet6之使用FSMC驱动TFT的学习
- 二十件事女人越早知道越幸福
- jboss发布com.sun.faces.config.WebConfiguration cannot be cast to com.sun.faces.config.WebConfiguration
- Android:shape 圆角
- 题目40: 公约数和公倍数
- 第三届蓝桥杯java本科组第6题
- 涨工资了!
- 4-2 三角形类