update-rc.d的具体用法

两种开机执行脚本的方法及相关的一个命令。


修改/etc/rc.local

在/etc/rc.local的exit 0语句之间添加启动脚本。脚本必须具有可执行权限。


用update-rc.d命令添加开机执行脚本

创建要开机自动执行的脚本:/home/test/blog/startBlog.sh,并给予可执行权限:chmod +x /home/test/blog/startBlog.sh。

在/etc/init.d目录下创建链接文件到前面的脚本: ln -s /home/test/blog/startBlog.sh /etc/init.d/startBlog。

进入/etc/init.d目录,用 update-rc.d 命令将连接文件 startBlog 添加到启动脚本中去:update-rc.d startBlog defaults 99。
其中的99表示启动顺序,取值范围是0-99。序号越大的越晚执行。

移除启动的脚本:update-rc.d -f startBlog remove。
-f选项表示强制执行。


update-rc.d命令

此命令用于安装或移除System-V风格的初始化脚本连接。脚本是存放在 /etc/init.d/目录下的,当然可以在此目录创建连接文件连接到存放在其他地方的脚本文件。

此命令可以指定脚本的执行序号,序号的取值范围是 0-99,序号越大,越迟执行。


用法

update-rc.d [-n] [-f] name remove 用于移除脚本。
update-rc.d [-n] name default [NN | SS KK],NN表示执行序号(0-99),SS表示启动时的执行序号,KK表示关机时的执行序号,SS、KK主要用于在脚本直接的执行顺序上有依赖关系的情况下。


选项

-n:不做任何事情,只显示将要做的。(预览、做测试)
-f:强制移除符号连接,即使 /etc/init.d/script-name 仍然存在。


举例

update-rc.d startBlog defaults 99:添加一个启动连接,执行序号是99。

如果执行脚本B需要先执行脚本A,如下设置(A的启动顺序比B的小,结束顺序比B的大):
update-rc.d script_for_A defaults 80 20
update-rc.d script_for_B defaults 90 10

添加一个不被其他任何服务需要的服务:update-rc.d script_name defaults 98 02,

添加一个需要 开始/结束 序号在20的服务的服务:update-rc.d script_depends_on_service_20 default 21 19。

移除一个脚本,假定/etc/init.d/目录下的脚本文件已先被删除:update-rc.d script_name remove。

移除一个脚本,不管/etc/init.d/目录下的脚本文件是否已删除:update-rc.d -f script_name remove。


探究Ubuntu下的update-rc.d命令:http://www.linuxdiyf.com/linux/13362.html

Update-rc.d && rc.local管理Ubuntu的开机启动:http://www.linuxdiyf.com/linux/1057.html

通过update-rc.d来管理Ubuntu系统的自动启动程序:http://www.linuxdiyf.com/linux/1056.html

Ubuntu系统Update-rc.d命令:http://www.linuxdiyf.com/linux/906.html

openSUSE下开机自动运行脚本命令的方法:http://www.linuxdiyf.com/linux/1975.html


=========================================

apache2、nginx、redis这些服务安装之后,会随开机启动,当这些服务并不需要时,就存在cpu和内存的浪费。

利用 update-rc.d 命令 我们可以实现启动项的管理。


添加启动项:

[plain]  view plain  copy
  1. sudo update-rc.d   apache2 defaults  
  2. sudo update-rc.d   nginx defaults  
  3. sudo update-rc.d   redis_6379 defaults  


删除启动项

[plain]  view plain  copy
  1. sudo update-rc.d -f apache2 remove  
  2. sudo update-rc.d -f nginx remove  
  3. sudo update-rc.d -f redis_6379 remove  


运行例子:

[plain]  view plain  copy
  1. $ sudo update-rc.d -f redis_6379 remove  
  2. [sudo] password for user:  
  3.  Removing any system startup links for /etc/init.d/redis_6379 ...  
  4.    /etc/rc0.d/K20redis_6379  
  5.    /etc/rc1.d/K20redis_6379  
  6.    /etc/rc2.d/S20redis_6379  
  7.    /etc/rc3.d/S20redis_6379  
  8.    /etc/rc4.d/S20redis_6379  
  9.    /etc/rc5.d/S20redis_6379  
  10.    /etc/rc6.d/K20redis_6379  

查看/etc/rc*.d/ 目录下,*20redis_6379已经被删除,反之会被添加。

github最新版

  1. apt-get install -y curl
  2. curl -sL https://deb.nodesource.com/setup_8.x | bash -
  3. apt-get install -y nodejs
  4. wget https://github.com/reruin/nrop/archive/master.zip
  5. unzip master.zip
  6. cd nrop-master
  7. npm install 
  8. npm run prd
复制代码


release版
  1. wget --no-check-certificate https://github.com/reruin/nrop/files/1878851/nrop_v0.1.1_linux_amd64.tar.gz
  2. tar -xzvf nrop_v0.1.1_linux_amd64.tar.gz
  3. ./nrop_v0.1.1_linux_amd64
复制代码

====================================

update-rc.d的具体用法:
1:删除所有级别中的开机自启动
update-rc.d -f <basename> remove
basename就是要删除的程序的名称.
2:按指定顺序、在指定运行级别中启动或关闭
用法:
update-rc.d <basename> start|stop <order> <runlevels>
例子:
update-rc.d httpd start 20 2 3 4 5 . stop 20 0 1 6 .
解析:表示在2、3、4、5这五个运行级别中,由小到大,第20个开始运行ushare;在 0 1 6这3个运行级别中,第20个关闭apachectl。
这是合并起来的写法,注意它有2个点号,效果等于下面方法:
update-rc.d  httpd  defaults
3:设置启动和关闭顺序为80,20,级别默认
update-rc.d <basename> defaults 80 20

查看update-rc.d的参数
#update-rc.d -h
usage: update-rc.d [-n] [-f]  remove
       update-rc.d [-n]  defaults [NN | SS KK]
       update-rc.d [-n]  start|stop NN runlvl [runlvl] [...] .
       update-rc.d [-n]  disable|enable [S|2|3|4|5]
-n: not really
-f: force


1、删除一个服务

如果你想手动的完全禁用Apache2服务,你需要删除其中的所有在/etc/rcX.d中的单一链路。但是如果使用update-rc.d,则非常简单: 

update-rc.d -f apache2 remove
参数-f是强制删除符号链接,即使/etc/init.d/apache2仍然存在。 Note:这个命令仅仅禁止该服务,直到该服务被升级。如果你想在服务升级后仍然保持被禁用。应该执行如下的命令:
update-rc.d apache2 stop 80 0 1 2 3 4 5 6  .

2、增加一个服务

如果你想重新添加这个服务并让它开机自动执行,你需要执行以下命令: 

update-rc.d apache2 defaults
并且可以指定该服务的启动顺序:
update-rc.d apache2 defaults 90
还可以更详细的控制start与kill顺序:
update-rc.d apache2 defaults 20 80
其中前面的20是start时的运行顺序级别,80为kill时的级别。也可以写成:
update-rc.d apache2 start 20 2 3 4 5 . stop 80 0 1 6 .
其中0~6为运行级别。 update-rc.d命令不仅适用Linux服务,编写的脚本同样可以用这个命令设为开机自动运行

你可能感兴趣的:(update-rc.d的具体用法)