设置Nginx在linux服务器(Ubuntu)开机启动
Posted 攻城狮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置Nginx在linux服务器(Ubuntu)开机启动相关的知识,希望对你有一定的参考价值。
1)首先需要安装 sysv-rc-conf
先更新一下 :
sudo apt-get update
然后:
apt install sysv-rc-conf
输入下载命令,下载好了,中间需要输入 y 确认命令
2)设置nginx开机启动:
我们自己编译安装的NGINX在/etc/init.d/下并没有管理脚本,所以我们现在还无法为NGINX设置自启动项,我们得先为NGINX在/etc/init.d/下创建一个启动脚本。
vi /etc/init.d/nginx
内容如下:
#! /bin/sh # chkconfig: 2345 55 25 # Description: Startup script for nginx webserver on Debian. Place in /etc/init.d and # run ‘update-rc.d -f nginx defaults‘, or use the appropriate command on your # distro. For CentOS/Redhat run: ‘chkconfig --add nginx‘ ### BEGIN INIT INFO # Provides: nginx # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the nginx web server # Description: starts nginx using start-stop-daemon ### END INIT INFO # Author: licess # website: http://lnmp.org PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin NAME=nginx NGINX_BIN=/usr/local/nginx/sbin/$NAME CONFIGFILE=/usr/local/nginx/conf/$NAME.conf PIDFILE=/usr/local/nginx/logs/$NAME.pid case "$1" in start) echo -n "Starting $NAME... " if netstat -tnpl | grep -q nginx;then echo "$NAME (pid `pidof $NAME`) already running." exit 1 fi $NGINX_BIN -c $CONFIGFILE if [ "$?" != 0 ] ; then echo " failed" exit 1 else echo " done" fi ;; stop) echo -n "Stoping $NAME... " if ! netstat -tnpl | grep -q nginx; then echo "$NAME is not running." exit 1 fi $NGINX_BIN -s stop if [ "$?" != 0 ] ; then echo " failed. Use force-quit" exit 1 else echo " done" fi ;; status) if netstat -tnpl | grep -q nginx; then PID=`pidof nginx` echo "$NAME (pid $PID) is running..." else echo "$NAME is stopped" exit 0 fi ;; force-quit) echo -n "Terminating $NAME... " if ! netstat -tnpl | grep -q nginx; then echo "$NAME is not running." exit 1 fi kill `pidof $NAME` if [ "$?" != 0 ] ; then echo " failed" exit 1 else echo " done" fi ;; restart) $0 stop sleep 1 $0 start ;; reload) echo -n "Reload service $NAME... " if netstat -tnpl | grep -q nginx; then $NGINX_BIN -s reload echo " done" else echo "$NAME is not running, can‘t reload." exit 1 fi ;; configtest) echo -n "Test $NAME configure files... " $NGINX_BIN -t ;; *) echo "Usage: $0 {start|stop|force-quit|restart|reload|status|configtest}" exit 1 ;; esac
保存成功之后我们要对这个管理脚本设置一个权限:
chmod +x /etc/init.d/nginx
接下来我们可以看看这个脚本能否正确执行:
/etc/init.d/nginx restart #这个管理脚本支持的命令有start|stop|force-quit|restart|reload|status|configtest
如果没有错误能正确执行,那我们可以开始把他加入启动项了:
sysv-rc-conf --list #我们先查看一下list中有没有我们刚刚加进去的这个nginx管理脚本
sysv-rc-conf nginx on #然后用这个命令添加开机自启动
参考:
Ubuntu安装sysv-rc-conf安装使用报错 E: Unable to locate package sysv-rc-conf
Debian/Ubuntu下使用sysv-rc-conf将NGINX设置为自启动
以上是关于设置Nginx在linux服务器(Ubuntu)开机启动的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu 18.04安装docker 以及Nginx服务设置