一、设置开机自启动的必要性
nginx是一款广泛应用于Web服务的高性能反向代理服务器,随着应用场景的不断扩大,我们经常需要在服务器重启之后自动启动nginx服务,以保证服务的正常运行。否则,每次服务器重启之后都需要手动启动nginx服务,不仅麻烦而且容易出现人为错误。
二、使用systemd设置nginx开机自启动
在CentOS 7及以上版本中,系统使用systemd作为初始化进程,可以通过systemd设置nginx服务开机自启动。
首先,使用root权限登录服务器,进入/etc/systemd/system目录,创建nginx.service文件:
$ cd /etc/systemd/system $ touch nginx.service
然后,我们需要编辑nginx.service文件,设置nginx服务开机自启动:
$ vim nginx.service
在文件中输入以下内容:
[Unit] Description=nginx daemon After=network.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
保存并退出文件。
上述文件内容定义了nginx服务的运行方式,包括服务的类型、PID文件位置、服务启动、重启和关闭的相关命令等。其中,在ExecStartPre中的/usr/local/nginx/sbin/nginx -t表示使用nginx配置文件进行语法检测,以确保nginx服务启动之前的配置文件是正确的。
最后,执行以下命令重新加载systemd服务并设置nginx服务开机自启动:
$ systemctl daemon-reload $ systemctl enable nginx.service
现在,你可以执行以下命令验证nginx服务启动情况:
$ systemctl start nginx.service $ systemctl status nginx.service
如果服务已经启动,你应该能够看到服务运行的状态信息。
三、使用chkconfig设置nginx开机自启动
在CentOS 6及以下版本,系统使用chkconfig作为初始化进程,也可以通过chkconfig设置nginx服务开机自启动。
首先,执行以下命令检查nginx服务是否已经在chkconfig中注册:
$ chkconfig --list | grep nginx
如果nginx服务未在chkconfig中注册,则需要手动注册服务:
$ chkconfig --add /usr/local/nginx/sbin/nginx
然后,执行以下命令将nginx服务标记为开机自启动:
$ chkconfig nginx on
现在,你可以查看nginx服务的状态:
$ service nginx status
如果服务已经启动,你应该能够看到服务运行的状态信息。
四、小结
使用systemd或chkconfig可以方便地设置nginx服务开机自启动,以确保服务在服务器重启后自动运行。在CentOS 7及以上版本中,建议使用systemd进行设置。
相信通过本文的介绍,大家已经可以轻松地进行nginx开机自启动的设置了。