systemd 自定义开机启动服务
# 对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system
目录添加一个配置文件。(以httpd.service为例) systemctl enable httpd # 上面的命令相当于在/etc/systemd/system目录添加一个符号链接,指向/usr/lib/systemd/system里面的httpd.service文件。
# 开机时,systemd只执行/etc/systemd/system 目录里的配置文件
systemctl cat
命令可以用来查看配置文件,下面以sshd.service
文件为例,它的作用是启动一个 SSH 服务器,供其他用户以 SSH 方式登录。
$ systemctl cat sshd.service [Unit] Description=OpenSSH server daemon Documentation=man:sshd(8) man:sshd_config(5) After=network.target sshd-keygen.service Wants=sshd-keygen.service [Service] EnvironmentFile=/etc/sysconfig/sshd ExecStart=/usr/sbin/sshd -D $OPTIONS ExecReload=/bin/kill -HUP $MAINPID Type=simple KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
上述配置文件分为3个区块:
- [Unit] 区块:启动顺序与依赖关系
- [Service] 区块:启动行为
- [Install] 区块:定义如何安装配置文件,即如何实现开机启动
[Unit] 区块详解:
Description:服务的简单描述 Documentation:文档位置 After/Before:定义当前服务应该在哪些服务之后/之前启动 After和Before只涉及启动顺序,不涉及依赖关系 设置依赖关系,需使用Wants和Requires Wants和Requires只涉及依赖关系,与启动顺序无关,默认情况下是同时启动的 Wants:弱依赖,即前者启动失败或停止运行,不影响后者继续执行 Requires:强依赖,即前者启动失败或异常退出,后者也必须退出
posted on 2022-09-21 16:47 Karlkiller 阅读(353) 评论(0) 编辑 收藏 举报