认识系统服务(daemon)
对于不同Linux发行版本,与systemd的daemon运行过程相关的目录路径可能会不一样
对于centos7:
/usr/lib/systemd/system/: 使用 CentOS 官方提供的软件安装后,默认的启动脚本配置文件都放在这里,这里的数据尽量不要修
改~ 要修改时,请到 /etc/systemd/system 底下修改较佳!
/run/systemd/system/: 系统执行过程中所产生的服务脚本,这些脚本的优先序要比 /usr/lib/systemd/system/ 高!
/etc/systemd/system/: 管理员依据主机系统的需求所建立的执行脚本,其实这个目录有点像以前 /etc/rc.d/rc5.d/Sxx 之类的功
能! 执行优先序又比 /run/systemd/system/ 高喔!
/etc/sysconfig/*: 几乎所有的服务都会将初始化的一些选项设定写入到这个目录下,举例来说,mandb 所要更新的 man page
索引中,需要加入的参数就写入到此目录下的 man-db 当中喔!而网络的设定则写在 /etc/sysconfig/network-scripts/ 这个目录
内。所以,这个目录内的文件也是挺重要的;
/var/lib/: 一些会产生数据的服务都会将他的数据写入到 /var/lib/ 目录中。举例来说,数据库管理系统 Mariadb 的数 据库默认就
是写入 /var/lib/mysql/ 这个目录下啦!
/run/: 放置了好多 daemon 的暂存档,包括 lock file 以及 PID file 等等。
对于Ubuntu16.04:
/lib/systemd/system/ 大多数 unit 的配置文件都放在这个目录下。 (主要是这里与Centos不同)
注意,在我们自己创建 unit 配置文件时,既可以把配置文件放在 /lib/systemd/system/ 目录下,也可以放在 /etc/systemd/system/ 目录下。
/etc/default/ 这个目录中放置很多服务默认的配置文件。
其他相同。
systemctl daemon-reload 子命令
daemon-reload 是一个很容易被误用的子命令,主要是因为它名字中包含的 daemon 一词很容易让它和 reload 子命令混淆。
我们在前文简略的介绍了 reload 子命令,它的作用是重新加载某个服务程序的配置文件。这里的程序指的是服务类型 unit 的配置中指定的程序,也就是我们常说的 daemon(提供某种服务的应用程序)。比如服务类型的 unit prometheus.service,提供服务的 daemon 程序在我的机器上是 /usr/local/share/prometheus/prometheus,所以 reload 子命令重新加载的是 prometheus 的配置文件。
如果把 daemon-reload 子命令中的 daemon 理解为 systemd 程序,就可以把这个命令解释为重新加载 systemd 程序的配置文件。而所有的 unit 配置文件都是作为 systemd 程序的配置文件存在的。这样得出的结论就是:
- 新添加 unit 配置文件时需要执行 daemon-reload 子命令
- 有 unit 的配置文件发生变化时也需要执行 daemon-reload 子命令
daemon-reload 命令会做很多的事情,其中之一是重新生成依赖树(也就是 unit 之间的依赖关系),所以当你修改了 unit 配置文件中的依赖关系后如果不执行 daemon-reload 命令是不会生效的。
参考鸟哥的Linux私房菜 第四版
更多推荐
所有评论(0)