计划了一次云服务器在夜间的升降配,需要在深夜自动重启重启服务器,由于本人一向习惯不把nginx当作服务运行,这次这样做就不行了,因此就需要配置systemd相关脚本,使得服务器重启后nginx会自动启动。
Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置,所以systemd是centos7默认的启动守候进程。
systemd通过脚本管理守候进程
在centos 7下systemctl脚本存放在:/etc/systemd/,有系统(system)和用户(user)之分
1、/etc/systemd/system #系统服务,开机不需要登陆就能运行的程序(相当于开启自启)
2、/etc/systemd/user #用户服务,需要登录后才能运行的程序
目录下又存在两种类型的文件:
1、*.service # 服务unit文件
2、*.target # 开机级别unit
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/test/test.pid # 存放PID的绝对路径
Restart=no # 定义服务进程退出后,systemd的重启方式,默认是不重启
ExecStart=/usr/local/test/bin/startup.sh # 服务启动命令,命令需要绝对路径
PrivateTmp=true # 表示给服务分配独立的临时空间
[Install] WantedBy=multi-user.target # 多用户
[Unit]
Description=The nginx HTTP Server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
————————————————
本文为Lokie.Wang原创文章,转载无需和我联系,但请注明来自lokie博客http://lokie.wang