Ubuntu Nginx 开机自启动

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#! /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

然后输入 以下命令

1
[[email protected] ~]# update-rc.d –f nginx defaults

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

 

 

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

1
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命令查看当前你的系统是在那个运行级

1
2
3
#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 目录下运行

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

猜你喜欢

转载自blog.csdn.net/ch5057997/article/details/79352244
今日推荐