systemd 自定义开机启动服务

 

 

1
2
3
4
# 对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件。(以httpd.service为例)
systemctl enable httpd
 
# 上面的命令相当于在/etc/systemd/system目录添加一个符号链接,指向/usr/lib/systemd/system里面的httpd.service文件。<br># 开机时,systemd只执行/etc/systemd/system 目录里的配置文件

systemctl cat命令可以用来查看配置文件,下面以sshd.service文件为例,它的作用是启动一个 SSH 服务器,供其他用户以 SSH 方式登录。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ 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个区块:

  1. [Unit] 区块:启动顺序与依赖关系
  2. [Service] 区块:启动行为
  3. [Install] 区块:定义如何安装配置文件,即如何实现开机启动

 

 [Unit] 区块详解:

复制代码
Description:服务的简单描述
Documentation:文档位置

After/Before:定义当前服务应该在哪些服务之后/之前启动 

After和Before只涉及启动顺序,不涉及依赖关系
设置依赖关系,需使用Wants和Requires
Wants和Requires只涉及依赖关系,与启动顺序无关,默认情况下是同时启动的
Wants:弱依赖,即前者启动失败或停止运行,不影响后者继续执行

Requires:强依赖,即前者启动失败或异常退出,后者也必须退出
复制代码

 

posted on   Karlkiller  阅读(353)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示