认识系统服务(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 程序的配置文件存在的。这样得出的结论就是:

  1. 新添加 unit 配置文件时需要执行 daemon-reload 子命令
  2. 有 unit 的配置文件发生变化时也需要执行 daemon-reload 子命令

daemon-reload 命令会做很多的事情,其中之一是重新生成依赖树(也就是 unit 之间的依赖关系),所以当你修改了 unit 配置文件中的依赖关系后如果不执行 daemon-reload 命令是不会生效的。

 


参考鸟哥的Linux私房菜 第四版

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Linux 系统中,可以通过 systemd 来注册 MariaDB 服务,使其在系统启动时自动运行。下面是具体的步骤: 1. 编写服务文件 在 `/etc/systemd/system` 目录下创建一个名为 `mariadb.service` 的文件,文件内容如下: ``` [Unit] Description=MariaDB database server After=network.target [Service] Type=forking User=mysql Group=mysql ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid [Install] WantedBy=multi-user.target ``` 其中,`Description` 表示服务的描述,`After` 指定服务依赖的服务,这里是网络服务;`Type` 表示服务运行的类型,这里是 `forking`,表示服务是以 fork 的方式运行的;`User` 和 `Group` 表示服务运行的用户和用户组;`ExecStart` 是服务启动命令,这里是启动 MariaDB 服务;`WantedBy` 指定服务的启动级别,这里是多用户模式。 2. 重新加载 systemd 执行以下命令重新加载 systemd: ``` systemctl daemon-reload ``` 3. 启动服务 执行以下命令启动 MariaDB 服务: ``` systemctl start mariadb ``` 4. 设置开机自启动 执行以下命令设置 MariaDB 服务开机自启动: ``` systemctl enable mariadb ``` 现在,MariaDB 服务已经注册成系统服务,并且在系统启动时自动运行。可以通过以下命令来管理 MariaDB 服务: 启动服务: ``` systemctl start mariadb ``` 停止服务: ``` systemctl stop mariadb ``` 重启服务: ``` systemctl restart mariadb ``` 查看服务状态: ``` systemctl status mariadb ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值