微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ubuntu14.04配置nginx开机自启动项

1. 创建/etc/init.d/Nginx文件

#! /bin/sh
# Author: rui ding
# Modified: Geoffrey Grosenbach http://www.linuxidc.com
# Modified: Clement NEDELCU
# Reproduced with express authorization from its contributors
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Nginx daemon"
NAME=Nginx
DAEMON=/usr/local/Nginx/sbin/$NAME
SCRIPTNAME=/etc/init.d/$NAME


# If the daemon file is not found,terminate the script.
test -x $DAEMON || exit 0

d_start() {
        $DAEMON || echo -n " already running"
}

d_stop() {
        $DAEMON –s quit || echo -n " not running"
}

d_reload() {
        $DAEMON –s reload || echo -n " Could not reload"
}

case "$1" in
    start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
reload)
echo -n "Reloading $DESC configuration..."
d_reload
echo "reloaded."
;;
restart)
echo -n "Restarting $DESC: $NAME"
d_stop
# Sleep for two seconds before starting again,this should give the
# Nginx daemon some time to perform a graceful stop.
sleep 2
d_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
exit 3
;;
esac
exit 0

增加可执行权限

chmod a+x /etc/init.d/Nginx


2.利用sysv-rc-conf命令将其在对应rc?.d目录下建立一个链接

sysv-rc-conf Nginx on

该命令会在rc2.d ~ rc5.d目录下都建立了一个Nginx的软链接

这里需要特别说明的是,Ubuntu系统下没有RedHat系统下的chkconfig命令。
但Ubuntu有一个类似的命令:sysv-rc-conf

通过apt-get命令完成sysv-rc-conf软件的安装。


学习资料

Linux系统的运行级别有7个,分别对应的:

  • 0: 关机
  • 1: 单用户(维护)
  • 2~5: 多用户
  • 6: 重启

可以通过runlevel命令来查看当前系统的运行等级:

 
 
  • 1
  • 2
  • 1
  • 2
wds@wds-VirtualBox:~$ runlevel N 2

其中第一个表示上一次的运行等级,N表示没有上一次运行等级的记录;第二个表示当前运行等级,这里为2.

linux中所有开机自启动项目运行脚本都放在/etc/init.d/目录下;同时在/etc/目录下有rc?.d目录,分别对应了7中不同的运行级别:

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    wds@wds-VirtualBox:/$ ls /etc/ | grep ^rc rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local rcS.d

    这里rc2.d目录就对应了我们系统当前的运行等级。

    其中里面的一些文件其实都是/etc/init.d/目录下文件的软链接:

      
      
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    wds@wds-VirtualBox:/etc/rc2.d$ ls -ltr total 4 -rw-r--r-- 1 root root 677 313 2014 README lrwxrwxrwx 1 root root 18 128 19:49 S99rc.local -> ../init.d/rclocal lrwxrwxrwx 49 S99ondemand .d/ondemand lrwxrwxrwx 49 S70pppd-dns .d/pppd-dns lrwxrwxrwx 19 49 S70dns-clean .d/dns-clean lrwxrwxrwx 15 49 S50saned .d/saned lrwxrwxrwx 27 49 S20speech-dispatcher .d/speech-dispatcher lrwxrwxrwx 49 S20rsync .d/rsync lrwxrwxrwx 20 49 S20kerneloops .d/kerneloops lrwxrwxrwx 21 9 17:25 S99grub-common .d/grub-common lrwxrwxrwx 45 S20Nginx .d/Nginx lrwxrwxrwx 17 47 S20PHP-fpm .d/PHP-fpm

    整个开机自启动项的流程如下:

    1. 开机后,系统获得当前的运行等级(例如这里的等级为2);
    2. 运行/etc/rc?.d目录下的所有可执行文件(这里运行/etc/rc2.d/目录下所有的软链接。这些软链接的源文件都保存在/etc/init.d/目录下)。

    因此我们只需要在/etc/init.d/完成启动Nginx进程的脚本,然后在/etc/rc2.d/做对应的软链接即可。

    原文地址:https://www.jb51.cc/ubuntu/352219.html

    版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

    相关推荐