systemctl管理脚本
一 、介绍
1、systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分
/usr/lib/systemd/system #系统服务,开机不需要登陆就能运行的程序(相当于开启自启)
/usr/lib/systemd/user #用户服务,需要登录后才能运行的程序
2、/usr/lib/systemd/目录下又存在两种类型的文件
- 1、*.service # 服务unit文件
- 2、*.target # 开机级别unit
3、CentOS 7服务结尾的三个部分
centos7 的每一个服务以。service 结尾,一般分为3部分:【unit】、【service】、【install】
[Unit] # 主要是服务说明
Description=test # 简单描述服务
After=network.target # 描述服务类别,表示本服务需要在network服务启动后在启动
Before=xxx.service #表示需要在某些服务启动之前启动,After和Before字段只涉及启动顺序,不涉及依赖关系。
[Service] # 核心区域
Type=forking # 表示后台运行模式。
User=user # 设置服务运行的用户
Group=user # 设置服务运行的用户组
KillMode=control-group # 定义systemd如何停止服务
PIDFile=/usr/local/prometheus/prometheus.pid # 存放PID的绝对路径
Restart=no # 定义服务进程退出后,systemd的重启方式,默认是不重启
ExecStart=/usr/local/t/prometheus/prometheus # 服务启动命令,命令需要绝对路径
PrivateTmp=true # 表示给服务分配独立的临时空间
[Install]
WantedBy=multi-user.target # 多用户
二、字段详细说明
1、Type类型有:
simple(默认):#以Execstart字段启动的进程为主进程
forking:#Execstart 字段以fox()方式启动,,此时父进程将退出,子进程将成为主进程(后台运行),一般都设置为forking
oneshot : #类似于simple,但只执行一次,systemd会等他执行完,才执行其他服务
dbus: #类似于simple,但会等待D—Bus信号后启动
notify: #类似与simple ,但结束后会发出通知信号,然后systemd才启动其他服务
idle: #类似与simple,但要等到其他任务都执行完,才启动该服务
2、EnvironmentFile:指定配置文件,和连词号组合使用,可以避免配置文件不存在的异常。
Environment:
后面接多个不同的s