• Ubuntu Nginx 开机自启动


    Ubuntu Nginx 开机自启动

    yuren 分享于 18 天 前, 4 条回复132 次浏览

    update-rc.d命令,是用来自动的升级System V类型初始化脚本,简单的讲就是,哪些东西是你想要系统在引导初始化的时候运行的,哪些是希望在关机或重启时停止的,可以用它来帮你设置。

    首先 我们需要在 /etc/init.d/目录下创建一个nginx的脚本文件,命令 vi nginx 输入以下内容

    #! /bin/sh
    # Author: rui ding
    # Modified: Geoffrey Grosenbach http://topfunky.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

    然后输入 以下命令

    [root@example.com ~]# update-rc.d –f nginx defaults

    好了 从新启动看看NGINX启动了没

    如果要取消开机启动可以这样

    update-rc.d -f nginx remove

    补充资料:

    /etc/init.d/里存放了所有的启动脚本,我们平时可以通过/etc/init.d/脚本名 启动模式 来启动某个应用。 例如输入命令“/etc/init.d/smb start”来启动smb服务。 如果是在RedHat系统下,还可以通过service smb start来启动某个服务。

    尽管/etc/init.d目录中的脚本可以启动和停止各个服务,但在系统引导时,init并不是直接在/etc/init.d目录下找各个服务的启动脚本,而是在/etc/rc.d/目录下查找,该目录包含rc0.d、rc1.d等分别代表不同的init启动级别的子目录。

    你可以用Runlevel命令查看当前你的系统是在那个运行级

    #Runlevel
         N  2
    注:我当前的系统是2级

    接着来看看这些rcx.d的目录下所包含的内容,内容全是一些符号链接,链接到上一级init目录中的脚本上。 这些符号链接名称都以S或K开头,后面跟一个数字以及该脚本所控制的服务名,例如S10network。 当init从低的运行级向高的运行级过渡时,它按照数字递增的顺序运行所有以S开头的脚本,S=start,即启动脚本对应的服务;K=kill,即杀死脚本对应服务。

    前面介绍到rcx.d目录下指向启动脚本的符号链接是由K或S+数字+服务名 所组成,中间这个数字十分重要,系统启动时按照这个数字递增执行所有S开头的脚本,系统关闭时按照这个数字递减执行所有K开头的脚本。

    如何自定义符号链接? 启动脚本: 因为我刚才的运行级是2级 所以在/etc/rc.d/rc2.d 目录下运行

    #ln -s /etc/init.d/nginx S99nginx       //重新定义nginx服务的脚本启动顺序

    回复 (4 条)

    • # 1 楼
      aoner 回复于 18 天 前

      一个开机启动也要写这么多东西。真好需要,收下了

    • # 2 楼
      jerry 回复于 18 天 前

      比较实用。 其实从这里 可以衍生出很多其它的需求,比如开机自动运行任务或者脚本等。可以参照着做出来。

    • # 3 楼
      huacnlee 回复于 7 天 前

      不用这个麻烦,/etc/init.d/nginx 加上以后 chmod +x /etc/init.d/nginx 然后 update-rc.d nginx defaults 就搞定了

    • # 4 楼
      yuren 回复于 6 天 前

      是的 我的补充资料只是给一些刚用LINUX的朋友的知识点补充,并不是nginx自启动必须的。

  • 相关阅读:
    ReentrantReadWriteLock读写锁的使用
    Exchanger的使用
    CyclicBarrier的用法
    Semaphore的使用
    CountDownLatch的使用
    BlockingQueue的使用
    对字符串操作的各种笔试题
    struts2请求过程源码分析
    shell语法使用
    hibernate调用mysql存储过程
  • 原文地址:https://www.cnblogs.com/lexus/p/1913109.html
Copyright © 2020-2023  润新知