Systemd和nginx的systemctl

计划了一次云服务器在夜间的升降配,需要在深夜自动重启重启服务器,由于本人一向习惯不把nginx当作服务运行,这次这样做就不行了,因此就需要配置systemd相关脚本,使得服务器重启后nginx会自动启动。

关于Systemd

  1. systemd简介

Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置,所以systemd是centos7默认的启动守候进程。

  1. systemd脚本

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 # 多用户

nginx的systemd脚本

    [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博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论
  • 本博客使用免费开源的 laravel-bjyblog v5.5.1.1 搭建 © 2014-2018 lokie.wang 版权所有 ICP证:沪ICP备18016993号
  • 联系邮箱:kitche1985@hotmail.com