一、前言
1、为什么配置systemd方式
通过前面的学习可以看出,每次启动或者关闭或者重启nginx服务都很麻烦
都要到/usr/local/nginx/sbin/这个目录下执行脚本,才能管理nginx服务
因此接下来我们简单说说如何使用systemctl命令来控制nginx
2、配置思路
注意:系统启动脚本都在/usr/lib/systemd/system目录下,但是自己配置的服务官方不建议放在此目录下,放在/etc/systemd/system目录下
本次实验,我选择安装httpd服务,安装后httpd的启动脚本会在 /usr/lib/systemd/system 目录下,用httpd服务启动脚本做参考配置nginx服务启动脚本
二、实验
步骤一:安装httpd服务,获得一份启动脚本模板
yum install httpd -y
步骤二:将httpd的启动脚本复制给nginx (一般系统中自定义的启动脚本放在/etc/systemd/system/目录下)
cd /usr/lib/systemd/system #进入httpd启动脚本存放目录
cp httpd.service /etc/systemd/system/nginx.service #复制给nginx,指定存放目录为 /etc/systemd/system
cd /etc/systemd/system/ #进入复制的nginx启动脚本存放目录
ls #查看
步骤三:修改/etc/systemd/system/nginx.service脚本内容如下
[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
步骤四:先用原来的方式关闭nginx服务
nginx -s reload #我之前做过软链接,所以不用写具体路径
netstat -antuple #查看端口
步骤五:systemd方式开启nginx
systemctl start nginx
出现如下错误:
Warning: nginx.service changed on disk. Run ‘systemctl daemon-reload’ to reload units.
Job for nginx.service failed because a configured resource limit was exceeded. See “systemctl status nginx.service” and “journalctl -xe” for details.
提示使用systemctl daemon-reload
解决:
systemctl daemon-reload
systemctl start nginx #开启nginx
netstat -antuple #查看服务端口是否开启