CentOS7中Nginx的systemctl启动方式(启动、停止、重启、开机启动)

目标:
在CentOS7中配置Nginx的systemctl启动方式(启动、停止、重启、开机启动)

科普:
1.CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分:

/usr/lib/systemd/system (系统服务,开机不需要登录就能运行)
/usr/lib/systemd/user (用户服务,需要登录后才能运行)

2./usr/lib/systemd/system 和 /etc/systemd/system的区别:

对于那些支持 Systemd(YUM/DNF/RPM/APT/etc) 的软件,安装的时候,会自动在 /usr/lib/systemd/system 目录添加一个配置文件。
对于非软件包形式的临时软件安装,系统操作员应将文件手动放置在 /etc/systemd/system

注意: 设置开机自启动脚本可以在/etc/systemd/system或者/usr/lib/systemd/system目录下配置,当两个地方都配置了的情况下,/etc/systemd/system配置优先。

3.每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]、[Install]:
[Unit] 主要是对这个服务的说明,内容包括Description和After,Description用于描述服务,After用于描述服务类别。
[Service] 是服务的关键,是服务的一些具体运行参数的设置,

Type=forking是后台运行的形式
PIDFile 为存放PID的文件路径
ExecStart 为服务的具体运行命令
ExecReload 为重启命令
ExecStop 为停止命令
PrivateTmp=True 表示给服务分配独立的临时空间

注意:[Service] 部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!
[Install] 是服务安装的相关设置,可设置为多用户的

分析:
1.配置启动脚本nginx.service文件;
2.设置脚本开机启动;
3.测试。

操作流程:
1.进入/lib/systemd/system
cd /lib/systemd/system
2.创建nginx.service
vi /lib/systemd/system/nginx.service
3.nginx.service中添加配置信息

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/tengine/sbin/nginx    #修改为自己系统对应的路径
ExecReload=/usr/local/tengine/sbin/nginx -s reload #修改为自己系统对应的路径
ExecStop=/usr/local/tengine/sbin/nginx -s quit    #修改为自己系统对应的路径
PrivateTmp=true

[Install]
WantedBy=multi-user.target

保存退出。

systemctl enable nginx.service (设置开机自启动)
参数解释:
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3.

5.操作命令

systemctl status nginx.service (查看服务当前状态)
systemctl start nginx.service (启动nginx服务)
systemctl stop nginx.service (停止nginx服务)
systemctl restart nginx.service (重新启动服务)
systemctl reload nginx.service  (重新加载配置)

systemctl enable nginx.service (设置开机自启动)
systemctl disable nginx.service (停止开机自启动)
systemctl list-units --type=service (查看所有已启动的服务)

例:查看服务启动状态(已启动状态)

例:访问Nginx 页面
测试地址:http://192.168.157.130/

6.参考命令

systemctl start *.service #启动服务
systemctl stop *.service #停止服务
systemctl restart *.service #重启服务
systemctl reload *.service #重新加载服务配置文件
systemctl status *.service #查询服务运行状态
systemctl enable *.service #开机运行服务
systemctl disable *.service #取消开机运行
systemctl --failed #显示启动失败的服务
systemctl is-enabled servicename.service #查询服务是否开机启动