一、基础
service存放目录:/etc/systemd/system/ service本质是一个unit文件,后缀为.service(这个后缀是给systemd识别的)
二、unit文件示例
[Unit]
Description=This is a service #描述
Wants=network-online.target
After=network.target #在network启动后启动
[Service]
User=root #运行的用户
Group=root #用户组
LimitNOFILE=4096
WorkingDirectory=/home/service/ #工作目录
ExecStart=/home/service/baota_start.sh #欲运行的脚本
Restart=on-failure #失败重启
StartLimitInterval=600
[Install]
WantedBy=multi-user.target说明:
可以用 Description ,User ,ExecStart,WantedBy 四个元素构成一个最最基本的unit文件。更多的元素请自行搜索。
注意: 确保指定的运行脚本(不是服务)的User有执行脚本的权限!如果脚本会新建/读取/运行文件或文件夹,请确保User具有访问该文件/文件夹的权限。
三、操作
- 将自己按照上面示例编辑的.service文件放入服务存放的文件夹
- 编写.service中ExecStart指定的.sh
- 赋予相应文件相应的权限(一般确保.service属于root且具有执行权限)
- 输入以下命令:
# 重载
$ sudo systemctl daemon-reload
# 开机启动service,{xxx.service}为指定的服务文件名
# 指令中的".service"可以省略(即只需输入对应的服务名xxx)。
$ sudo systemctl enable --now {xxx.service}四、systemctl 常用指令
- systemctl start {xxx.service} #启动服务(一次性)
- systemctl restart {xxx.service} #重启服务
- systemctl disable --now {xxx.service} #禁止服务开机启动
- systemctl stop {xxx.service} #停止服务
- journalctl -u {xxx.service} -f #查看服务运行日志