unix下的守护进程
来源:互联网 发布:linux中的vi指令 编辑:程序博客网 时间:2024/05/21 17:34
守护进程也称为精灵进程,是生存期较长的一种进程,它们常常在系统自举时启动,仅在系统关闭时才终止,因为它们没有控制终端,所以说它们是在后台运行的,unix系统有很多的守护进程,它们执行日常事务活动。
本章说明守护进程的结构,已以及如何编写守护进程程序,因为守护进程没有控制终端,我们需要了解在出现问题时,守护进程如何报告错误情况。
守护进程的编写规则:
在编写守护进程程序时需要遵循一些基本的规则,以便防止产生并不需要的交互作用,下面先说明这些规则,然后给出一个按照这些规则编写的函数daemonize
首先要做的是调用umask将文件模式创建屏蔽字设置为0,由继承得来的文件模式创建屏蔽字可能会拒绝设置某些权限,
2,调用fork,然后使父进程退出,这样做实现以下几点,如果该守护进程是作为一条简单的shell命令启动的,那么父进程终止使得shell认为这条命令已经执行完毕,第二,子进程继承了父进程的进程组ID,但具有一个新的进程ID,这就保证了,子进程不是一个进程组的组长进程,这对于下面就要做的setsid调用是必要的前提条件。
3,调用setsid以创建一个新的会话,使得调用进程称为新会话的首进程,称为一个新进程组的组长进程,没有控制终端,
4,将当前工作目录更改为根目录,
5,关闭不再需要的文件描述符,这使守护进程不再持有从其父进程继承而来的某些文件描述符,(父进程可能为shell或其他 进程),
6,某些守护进程打开/dev/null,使其具有文件描述符0,1,2,这样,任何一个试图读标准输入,写标准输出,或标准出错,的库例程都不会产生任何效果。
0 0
- Unix下的守护进程
- Unix下的守护进程
- unix下的守护进程
- UNIX下守护进程(Daemon)的编写
- 详解unix下的C守护进程
- UNIX的守护进程(服务器)
- Unix守护进程列表
- unix 守护进程
- unix 守护进程
- Linux下的守护进程
- Linux下的守护进程
- linux下的守护进程
- Linux下的守护进程
- Linux下的守护进程
- Linux下的守护进程
- Linux下的守护进程
- Linux下的守护进程
- linux下的守护进程
- SOASTA如何借助UCloud在中国开展云测试
- url重写时访问出现404
- LRU Cache
- Java中抽象类和接口的区别
- UVa644-Immediate Decodability-字符串-难度2
- unix下的守护进程
- Core Animation 一 (视图动画和用户交互)
- a标签:鼠标指针变成文本输入图形
- playframework 拦截器
- spring使用ApplicationContext需要的包:ClassNotFoundException: org.aopalliance.intercept.MethodInterceptor
- 互联网思维是个什么玩意
- android:paddingLeft和android:layout_marginLeft的区别
- mssqlserver - 查询执行的错误信息以及事务回滚
- 求0x5f3759df的数学原理