通过systemctl管理进程

向Linux注册服务,可以实现开机自启、程序宕机重启等特性

systemd是系统启动的第一个进程,systemctl是管理systemd的工具,systemctl常用来管理和监督常驻服务,确保其运行。

第一步:进入/usr/lib/systemd/system文件夹

1
cd /usr/lib/systemd/system

第二步:创建service启动文件
以master为例,/usr/lib/systemd/system下创建cron-master.service文件

1
vim cron-master.service

第三步:内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[Unit]
# 服务描述
Description=crontab master
# 在网络初始化之后启动
After=network.target

[Service]
# 服务类型
Type=simple
# 进程退出立即重启
Restart=always


# 工作目录
WoringDirectory=/root/app/crontab
# 启动命令
ExecStart=/root/app/crontab/master -config /root/app/crontab/master.json

[Install]
# 当系统以多用户方式启动时,这个服务需要被自动运行
WantedBy=multi-user.target

第四步:启动服务

1
systemctl start cron-master.service

补充:管理服务

1
2
3
4
5
6
7
8
9
重新加载 systemd 程序的配置文件(新添加 unit 配置文件时需要执行 daemon-reload 子命令):systemctl daemon-reload
启动一个服务:systemctl start cron-master.service
关闭一个服务:systemctl stop cron-master.service
重启一个服务:systemctl cron-master.service
显示一个服务的状态:systemctl status cron-master.service
在开机时启用一个服务:systemctl enable cron-master.service
在开机时禁用一个服务:systemctl disable cron-master.service
查看服务是否开机启动:systemctl is-enabled cron-master.service;echo $?
查看已启动的服务列表:systemctl list-unit-files|grep enabled
参考资料
  1. linux下如何使用systemctl管理守护进程