APUE读书笔记-第十三章-守护进程
来源:互联网 发布:大数据商业计划书 编辑:程序博客网 时间:2024/06/18 02:50
- 用户层守护进程的父进程是init进程
守护进程编写规则
(1)umask将文件模式创建屏蔽字设置为一个已知值(通常为0)
(2)调用fork,然后使父进程exit,保证了子进程不是一个进程组的组长进程
(3)调用setsid创建一个新会话,由于该进程不是一个进程组的组长进程,会发生以下三件事
(a)该进程变成新会话的会话首进程,此时,该进程时新会话中的唯一进程
(b)该进程成为一个新进程组的组长进程,新进程组ID是该调用进程的进程ID
(c)该进程没有控制终端,若果在调用setsid之前该进程有一个控制终端,那么这种联系也被切断
(4)将当前工作目录改为根目录,或者更改到某个特定位置
(5)关闭不需要的文件描述符(可以使用open_max函数或getrlimit函数来判定最高文件描述符值)
(6)某些守护进程打开/dev/null使其具有文件描述符0、1和2产生日志消息的三种方法
(1)内核例程可以调用log函数
(2)大部分用户进程(守护进程)调用syslog函数来产生日志消息,这使消息被发送到UNIX域数据报套接字/dev/log
(3)无论一个用户进程是在此主机上还是在通过TCP/IP网络连接到此主机的其他主机上,都可将日志消息发送向UDP端口514,syslog函数从不产生这些UDP数据报- 编写守护进程的惯例
- 若守护进程使用锁文件,那么该文件通常存储在/var/run目录下(守护进程可能需要超级权限才能在该目录下创建文件),锁文件的名字通常是name.pid,其中那name是该守护进程或服务的名字
- 若守护进程支持配置选项,那么配置文件通常存放在/etc目录下,配置文件的名字通常是conf
- 守护进程可用命令行启动,但通常它们是由系统初始化脚本之一启动的,如果在守护进程终止时,应当自动重启它,则我们可以在/etc/inittab中守护进程包括respawn记录项,这样init就将重新启动该守护进程
- 若一个守护进程有一个配置文件,那么当该守护进程启动时会读该文件,但在此之后一般就不会再查看它,为了避免配置文件更改后守护进程需要停止,再启动使配置文件生效,某些守护进程将捕捉SIGHUP信号,当它们接收到该信号时,重新读配置文件。因为守护进程并没有与终端相结合,它们或者是无控制终端的会话首进程,或者是孤儿进程组的成员,所以守护进程没有理由期望接收SIGHUP。于是,守护进程可以安全的=地重复使用SIGHUP
阅读全文
0 0
- 《APUE》读书笔记—第十三章守护进程
- APUE读书笔记-第十三章-守护进程
- apue 第十三章 守护进程
- APUE第十三章(守护进程)
- 《APUE》笔记-第十三章-守护进程
- APUE读书笔记-第13章-守护进程
- APUE学习笔记——第十三章 守护进程
- apue学习笔记(第十三章 守护进程)
- 第十三章 守护进程
- 第十三章 守护进程
- apue学习第二十天——守护进程(第十三章)
- apue 第13章 守护进程
- APUE 第13章 守护进程
- APUE 笔记 守护进程
- APUE守护进程
- APUE-守护进程Daemon
- APUE------守护进程
- [APUE chapter 13] 守护进程
- js中获取时间new Date()详细介绍
- hdu 3652 B-number(数位dp)
- 给Android Studio设置代码字体大小与界面字体样式
- 最左原位
- 归并排序算法
- APUE读书笔记-第十三章-守护进程
- 4.3.2深度定时任务(TimerTask in Depth)
- 线程池学习笔记
- 如何成为一个及格的码农
- 剑指offer_第一个只出现一次的字符
- 常用图片格式介绍(了解
- leetcode 24 swapPairs
- from google.protobuf.internal import enum_type_wrapper ImportError: No module named google.protobuf
- 【Android】Android性能优化