Nginx设置开机启动

Nginx设置开机启动过程中遇到的问题

问题 /etc/init.d/nginx start 失败

/etc/init.d/nginx start
/etc/init.d/nginx: line 1: nx: command not found
Starting nginx (via systemctl):  Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

systemctl status nginx.service
● nginx.service - SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server
   Loaded: loaded (/etc/rc.d/init.d/nginx; bad; vendor preset: disabled)
   Active: failed (Result: exit-code) since Tue 2022-06-14 08:48:54 CST; 18min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 2061 ExecStart=/etc/rc.d/init.d/nginx start (code=exited, status=203/EXEC)

环境

# 操作系统:centos7 nginx-1.12.0

设置步骤

1、在/etc/init.d下创建文件nginx

# vim /etc/init.d/nginx

其内容参考nginx官方文档

需要注意的配置:

# nginx="/usr/local/nginx/sbin/nginx" //修改成nginx执行程序的路径。

# NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" //修改成nginx.conf文件的路径。

保存后设置文件的执行权限

[root@localhost ~]# chmod a+x /etc/init.d/nginx

2、至此就可以通过下面指令控制启动停止

/etc/init.d/nginx start
/etc/init.d/nginx stop

上面的方法完成了用脚本管理nginx服务的功能,但是还是不太方便。

原本以为只要按步骤来就是分分钟之内的事情,但是在第2步后,执行/etc/init.d/nginx start就报错了

[root@bigdata02 sbin]# /etc/init.d/nginx start
/etc/init.d/nginx: line 1: nx: command not found
Starting nginx (via systemctl):  Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
                                                           [FAILED]
[root@bigdata02 sbin]# systemctl status nginx.service
● nginx.service - SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server
   Loaded: loaded (/etc/rc.d/init.d/nginx; bad; vendor preset: disabled)
   Active: failed (Result: exit-code) since Tue 2022-06-14 08:48:54 CST; 18min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 2061 ExecStart=/etc/rc.d/init.d/nginx start (code=exited, status=203/EXEC)

Jun 14 08:48:54 bigdata02 systemd[1]: Starting SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server...
Jun 14 08:48:54 bigdata02 systemd[1]: nginx.service: control process exited, code=exited status=203
Jun 14 08:48:54 bigdata02 systemd[1]: Failed to start SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server.
Jun 14 08:48:54 bigdata02 systemd[1]: Unit nginx.service entered failed state.
Jun 14 08:48:54 bigdata02 systemd[1]: nginx.service failed.

3、在 /usr/lib/systemd/system 目录中添加 nginx.service,根据实际情况进行修改,详细解析可查看下方参考资料中的文章。内容如下

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
  
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
  
[Install]
WantedBy=multi-user.target

4、查看nginx状态

[root@bigdata02 ~]# systemctl status nginx
● nginx.service - nginx - high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: http://nginx.org/en/docs/

5、启动nginx服务

[root@bigdata02 ~]# systemctl start nginx
[root@bigdata02 ~]# systemctl status nginx
● nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-06-14 10:21:33 CST; 3min 58s ago
     Docs: http://nginx.org/en/docs/
  Process: 2268 ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf (code=exited, status=0/SUCCESS)
  Process: 2267 ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf (code=exited, status=0/SUCCESS)
 Main PID: 2270 (nginx)
    Tasks: 2
   CGroup: /system.slice/nginx.service
           ├─2270 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
           └─2271 nginx: worker process

Jun 14 10:21:33 bigdata02 systemd[1]: Starting nginx - high performance web server...
Jun 14 10:21:33 bigdata02 nginx[2267]: nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
Jun 14 10:21:33 bigdata02 nginx[2267]: nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
Jun 14 10:21:33 bigdata02 systemd[1]: Started nginx - high performance web server.

4、设置开机启动

systemctl enable nginx
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容