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 sudo update-rc.d apache2 defaults
sudo update-rc.d nginx defaults
sudo update-rc.d redis_6379 defaults

删除启动项

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

运行例子:

[plain] view plain copy $ sudo update-rc.d -f redis_6379 remove
[sudo] password for user:
Removing any system startup links for /etc/init.d/redis_6379 ...
/etc/rc0.d/K20redis_6379
/etc/rc1.d/K20redis_6379
/etc/rc2.d/S20redis_6379
/etc/rc3.d/S20redis_6379
/etc/rc4.d/S20redis_6379
/etc/rc5.d/S20redis_6379
/etc/rc6.d/K20redis_6379

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

github最新版

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

release版 wget --no-check-certificate https://github.com/reruin/nrop/files/1878851/nrop_v0.1.1_linux_amd64.tar.gz tar -xzvf nrop_v0.1.1_linux_amd64.tar.gz ./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服务,编写的脚本同样可以用这个命令设为开机自动运行

文章目录