【linux】systemctl 开机自启服务

service文件创建

nginx为例:新建 nginx.service

1
vim /usr/lib/systemd/system/nginx.service
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
[Unit]
# 描述服务
Description=nginx - high performance web server
Documentation=https://nginx.org
After=network.target remote-fs.target nss-lookup.target

# 服务的一些具体运行参数的设置
[Service]
# 后台运行的形式
Type=forking
# 启动命令
ExecStart=/usr/local/nginx-1.24.0/sbin/nginx
# 重启命令
ExecReload=/usr/local/nginx-1.24.0/sbin/nginx -s reload
# 停止命令
ExecStop=/usr/local/nginx-1.24.0/sbin/nginx -s stop
# 快速停止
ExecQuit=/usr/local/nginx-1.24.0/sbin/nginx -s quit
# 给服务分配临时空间
PrivateTmp=true
# 发生异常,5s后重启
RestartSec=5s

[Install]
# 服务用户的模式
WantedBy=multi-user.target

完成后重新加载 systemd 守护进程配置文件

1
systemctl daemon-reload

systemctl常用运行命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
systemctl daemon-reload # 刷新配置

systemctl start xxx.service # 启动服务
systemctl stop xxx.service # 停止服务
systemctl enable xxx.service # 设置开机自启动
systemctl disable xxx.service # 停止开机自启动
systemctl restart xxx.service # 重新启动某服务
systemctl status xxx.service # 查看服务当前状态


systemctl list-units --type=service # 查看所有已启动的服务
systemctl --failed # 查看失败的服务列表
systemctl list-unit-files|grep enabled # 查看成功的服务列表
systemctl reset-failed # 删除所有错误的服务 携带服务名则删除指定的服务

参考文档

https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html

https://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html