## 什么是守护进程?
守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。
守护进程是个特殊的孤儿进程,这种进程脱离终端,为什么要脱离终端呢?之所以脱离于终端是为了避免进程被任何终端所产生的信息所打断,其在执行过程中的信息也不在任何终端上显示。由于在 Linux 中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会自动关闭。
Linux 的大多数服务器就是用守护进程实现的。比如,Internet 服务器 inetd,Web 服务器 httpd 等。
## 如何查看守护进程
在终端敲:ps axj
1. a 表示不仅列当前用户的进程,也列出所有其他用户的进程
2. x 表示不仅列有控制终端的进程,也列出所有无控制终端的进程
3. j 表示列出与作业控制相关的信息
## 守护进行的一些特点
1. 守护进程基本上都是以超级用户启动( UID 为 0 )
2. 没有控制终端( TTY 为 ?)
3. 终端进程组 ID 为 -1 ( TPGID 表示终端进程组 ID)
一般情况下,守护进程可以通过以下方式启动:
1. 在系统启动时由启动脚本启动,这些启动脚本通常放在 /etc/rc.d 目录下;
2. 利用 inetd 超级服务器启动,如 telnet 等;
3. 由 cron 定时启动以及在终端用 nohup 启动的进程也是守护进程。