ForeWord
本文介绍了守护进程的概念及其模拟实现
Key Point:
- 守护进程(Daemon)概念
模拟实现守护进程(Code):
调用函数模拟实现mydaemon 调用系统接口实现
~tips:全文阅读需要5min~
Daemon
守护进程(精灵进程( Daemon)):
- 一种没有控制终端的linux系统服务进程,父进程为pid为1的init进程,随系统启动。
- 不能直接和用户交互,不受用户登录注销的影响,一直在运行。
- 独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。
Linux的大多数服务器就是用守护进程实现的:
比如Internet服务器inetd,Web服务器httpd等;同时,守护进程还可以完成许多系统任务,比如作业规划进程crond,想了解的小伙伴请戳下面:
用ps axj命令查看系统中的进程:参数a表示不仅列当出前用户的进程,也列出所有其他用户的进程;参数x表示不仅列有控制终端的进程,也列出所有无控制终端的进程;参数j表示列出与作业控制相关的信息。
凡是TPGID⼀栏写着-1的都是没有控制终端的进程,也就是守护进程。守护进程通常采⽤以d结尾的名字,表示Daemon。
注:在COMMAND一列⽤用[]括起来的名字表示内核线程,这些线程在内核⾥里创建,没有用户空间代码,因此没有程序文件名和命令行, 通常采用以k开头的名字,表示Kernel。