第十八章认识系统服务

时间:2022-01-09 16:05:59

什么是daemon?达成service的程序就是daemon

如果依据 daemon 的启动与管理方式来区分,基本上,可以将 daemon 分为可独立启动的 stand alone , 与透过一支 super daemon 来统一管理的服务这两大类

某些服务可以使用 stand alone 来启动,而有些其他的服务则可以使用 xinetd 这个 super daemon 来管理


daemon 的命名守则

通常在服务的名称之后会加上一个 d ,例如例行性命令的创建的at, 与 cron 这两个服务, 他的程序文件名会被取为 atd 与 crond,这个 d 代表的就是 daemon 的意思。

daemon 的启动脚本与启动方式

这些 daemon 的启动脚本 (shell script) 放在哪里



/etc/init.d/* :启动脚本放置处
系统上几乎所有的服务启动脚本都放置在这里!事实上这是公认的目录,我们的 CentOS 实际上放置在 /etc/rc.d/init.d/ 啦! 不过还是有配置连结档到 /etc/init.d/ 的!既然这是公认的目录,因此建议您记忆这个目录即可!

/etc/sysconfig/* :各服务的初始化环境配置文件
几乎所有的服务都会将初始化的一些选项配置写入到这个目录下,举例来说,登录档的 syslog 这支 daemon 的初始化配置就写入在 /etc/sysconfig/syslog 这里呢!而网络的配置则写在 /etc/sysconfig/network 这个文件中。 所以,这个目录内的文件也是挺重要的;

/etc/xinetd.conf, /etc/xinetd.d/* :super daemon 配置文件
super daemon 的主要配置文件 (其实是默认值) 为 /etc/xinetd.conf ,不过我们上面就谈到了, super daemon 只是一个统一管理的机制,他所管理的其他 daemon 的配置则写在 /etc/xinetd.d/* 里头喔!

/etc/* :各服务各自的配置文件
第六章就讲过了,大家的配置文件都是放置在 /etc/ 底下的喔!

/var/lib/* :各服务产生的数据库
一些会产生数据的服务都会将他的数据写入到 /var/lib/ 目录中。举例来说,数据库管理系统 MySQL 的数据库默认就是写入 /var/lib/mysql/ 这个目录下啦!

/var/run/* :各服务的程序之 PID 记录处
我们在 第十七章谈到可以使用讯号 (signal) 来管理程序, 既然 daemon 是程序,所以当然也可以利用 kill 或 killall 来管理啦!不过为了担心管理时影响到其他的程序, 因此 daemon 通常会将自己的 PID 记录一份到 /var/run/ 当中!例如登录文件的 PID 就记录在 /var/run/syslogd.pid 这个文件中。如此一来, /etc/init.d/syslog 就能够简单的管理自己的程序啰。


启动服务有两种方式:利用service命令:service service-name [start|stop|restart|status]

或者利用/etc/init.d/service-name [start|stop...]

利用service命令的时候服务名称后面一般加d

例如下面两种启动方式

service vsftpd start

/etc/init.d/ssh start