update-rc.d 更新 Linux 系统启动项 命令 用法详解


探究 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

 

 

ssh 服务开机自动启动

  • 1、修改sshd_config文件,命令为:vi /etc/ssh/sshd_config
  • 2、将 #PasswordAuthentication no 的注释去掉,并且将 NO 修改为 YES
  • 3、将 #PermitRootLogin yes 的注释去掉 
  • 4、启动 SSH 服务,命令为:/etc/init.d/ssh start  查看状态:/etc/init.d/ssh status  停止服务:/etc/init.d/ssh stop
         也可以使用systemctl命令:systemctl start ssh、systemctl status ssh、systemctl stop ssh
  • 5、验证SSH服务状态,命令为:/etc/init.d/ssh status
  • 6、添加开机自启动 update-rc.d ssh enable 。关闭则为:update-rc.d ssh disabled 自启动需要重启生效

 

Ubuntu 或者 Debian系统中 update-rc.d 命令 是 用来更新系统启动项的脚本。这些脚本的链接位于/etc/rcN.d/目录,对应脚本位于/etc/init.d/目录。在了解 update-rc.d命令之前,你需要知道的是有关Linux 系统主要启动步骤,以及Ubuntu中运行级别的知识。

 

 

一、Linux 系统主要启动步骤

 

  1. 读取 MBR 的信息,启动 Boot Manager。
  2. 加载系统内核,启动 init 进程, init 进程是 Linux 的根进程,所有的系统进程都是它的子进程。
  3. init 进程读取 /etc/inittab 文件中信息,并进入预设的运行级别。通常 /etc/rcS.d/ 目录下的启动脚本首先被执行,然后是/etc/rcN.d/ 目录。
  4. 根据 /etc/rcS.d/ 文件夹中对应的脚本启动 Xwindow 服务器 xorg,Xwindow 为 Linux 下的图形用户界面系统。
  5. 启动登录管理器,等待用户登录。

 

        即在Linux系统下,一个Services的启动、停止以及重启通常是通过/etc/init.d目录下的脚本来控制的。然而,在启动或改变运行级别时,是在/etc/rcX.d中来搜索脚本。其中X是运行级别的number。当你在Debian下安装一个新的服务,比如Apache2,安装完成后,默认情况下它会启动,并在下一次重启后自动启动。但是如果你不是一直需要这个服务,只在需要的时候启用它,你可以禁用它。直到你需要使用的时候,执行如下指令: /etc/init.d/apache2 start
要实现这个目的,你需要先在/etc/rcX.d目录中删除所有apache2的符号链接,但这个方法操作麻烦,且效率低下。可以使用update-rc.d命令来实现这个功能。
 

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 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


 

二、运行级别

 

Ubuntu中的运行级别

  • 0(关闭系统)
  • 1(单用户模式,只允许root用户对系统进行维护。)
  • 2 到 5(多用户模式,其中3为字符界面,5为图形界面。)
  • 6(重启系统)

切换运行级别

init [0123456Ss]
例如:init 0 命令关机; init 6 命令重新启动

启动项管理工具

sudo install sysv-rc-conf //或者使用带gui的工具bum 
sudo sysv-rc-conf

 

 

三、update-rc.d命令详解

从所有的运行级别中删除指定启动项:update-rc.d -f <basename> remove
按指定顺序、在指定运行级别中启动或关闭:update-rc.d <basename> start|stop <order> <runlevels>

实例:update-rc.d apachectl start 20 2 3 4 5 . stop 20 0 1 6 .
解析:表示在2、3、4、5这五个运行级别中,由小到大,第20个开始运行apachectl;
      在 0 1 6 这3个运行级别中,第20个关闭apachectl。
      这是合并起来的写法,注意它有2个点号,
      效果等于下面方法:update-rc.d apachectl defaults

A启动后B才能启动,B关闭后A才关闭:
update-rc.d A defaults 80 20
update-rc.d B defaults 90 10

启动和关闭顺序为90,级别默认:update-rc.d <basename> defaults 90

apache2、nginx、Redis 这些服务安装之后,会随开机启动,当这些服务并不需要时,就存在cpu和内存的浪费。
利用 update-rc.d 命令 我们可以实现启动项的管理。

 

添加启动项:

sudo update-rc.d   apache2 defaults  
sudo update-rc.d   nginx defaults  
sudo update-rc.d   redis_6379 defaults  

删除启动项

sudo update-rc.d -f apache2 remove  
sudo update-rc.d -f nginx remove  
sudo update-rc.d -f redis_6379 remove  

运行例子:

$ 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 已经被删除,反之会被添加。

 

 

两种开机执行脚本的方法

 

很多应用程序、服务需要在机器启动的时候自动执行,这里记录两种开机执行脚本的方法

 

1. 修改/etc/rc.local

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

vi /etc/rc.local  文本编辑,输入以下内容,存档即可。
/etc/init.d/ssh start exit 0

 

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

 

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 仍然存在。

 

流程:

创建要开机自动执行的脚本:/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 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。

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496542.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

合成艺术字二 :使用的透明类以及所用的颜色选择器JS(完整事列源码)

1.透明类 ImageToTrans using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.IO; using System.Runtime.InteropServices; using System.Collections; public static Bitmap MakeTransparentGif(Bitmap bitmap, Color color) …

推荐!神经进化才是深度学习未来的发展之路!

来源:全球人工智能过去几年时间里,我们有一个完整的团队致力于人工智能研究和实验。该团队专注于开发新的进化计算方法(EC),包括设计人工神经网络架构、构建商业应用程序,以及使用由自然进化激发的方法来解…

mysql max字符串数值_针对字符串值的mysql:min()和max()。

我有一个连接两个表的SQL Select语句。主表包含产品的其他信息,并联接到第二个尺寸表。第二个表包含存储为字符串的非数字大小列表,其结构简单如下…sizeID主键sizename字符串大小值(即,小、中、大)size order用于排序大小顺序的整数值(即,size order为5表示大小大于size order…

linux 命令:ping、fping、gping、hping3、tracert、traceroute

From: Nmap、Netcat、Hping3工具对比:http://www.2cto.com/article/201210/158961.html ​hping3 命令:http://man.linuxde.net/hping3 示例:Testing firewall rules with Hping3 :https://www.docin.com/p-74538211…

Java加密与解密的艺术~数字签名~模型分析

甲方作为消息的发送方,乙方作为消息的接收方。假设甲乙双方在消息传递之前已经指定了要使的数字签名算法(如RSA算法)。为完成签名验证,甲乙双方需要以下操作: 1)、由消息发送方(甲方&#xff09…

BlazeDS入门教程-很详细-赞原创作者一个

什么是BlazeDS呢?BlazeDS是一个基于服务器的Java远程调用(remoting)和Web消息传递(messaging)技术,它能够使得后台的Java应用程序和运行在浏览器上的Flex应用程序相互通信。在各大搜索引擎里,关…

excel概率密度函数公式_标准正态分布密度函数公式

展开全部标准正态分布密度函数公式:正态曲线呈钟型62616964757a686964616fe58685e5aeb931333366306532,两头低,中间高,左右对称因其曲线呈钟形,因此人们又经常称之为钟形曲线。若随机变量X服从一个数学期望为μ、方差为…

2017-2018中国物联网产业全景图谱报告——物联网对产业深度变革已开启

来源:物联网智库丨公众号如果说2016年里物联网的产业生态各种要素已具备,那么2017年就是物联网对于国民经济产业变革的规模效应初显的一年,可以说是物联网对产业变革的元年。在这一过程中,通过二维生态图谱去了解过去一年的进展不…

linux命令终极系列awk

AWK man 手册:http://man.linuxde.net/awk AWK编程的内容极多,这里只罗列简单常用的用法,更多请参考 http://www.gnu.org/software/gawk/manual/gawk.html 简介 什么是awk? awk是一个强大的文本分析工具,相对于grep的查找&a…

Java加密与解密的艺术~数字签名~RSA实现

RSA 实现 /*** 2008-6-11*/ package org.zlex.chapter09_1;import java.security.Key; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.PrivateKey; import java.security.PublicKey; import …

图灵2008年12月出版的计算机图书

《JavaScript设计模式》 《MySQL必知必会》 《实用Java教程:基于BlueJ的对象优先方法(第3版)》 《C#图解教程》 转载于:https://www.cnblogs.com/bookshop/archive/2008/12/21/1359397.html

mysql numeric float_sql 下,float和numeric

搜了下两者的区别,答案其实很明显:numeric支持最长38位长度的数字,只有在你要的数字的长度超过38位时才推荐使用float原因是,float在保存和提取,以及数学计算等方面,会产生于期待记过不一致的情况。为什么呢&#xff1…

科技部认定的独角兽名单来了!共164家

来源:中国证券报丨公众号 作者:杨洁今天上午, 科技部火炬中心、中关村管委会、长城战略咨询、中关村银行联合主办“2017中国独角兽企业发展报告”发布会。《2017中国独角兽企业发展报告》显示: 2017年中国独角兽企业共164家新晋62…

p0f - 被动探测操作系统工具

参考:http://lcamtuf.coredump.cx/p0f3/ p0f是一款被动探测工具,能够通过捕获并分析目标主机发出的数据包来对主机上的操作系统进行鉴别,即使是在系统上装有性能良好的防火墙的情况下也没有问题。。目前最新版本为3.09b。同时p0f在网络分析方…

《Head First 设计模式》专题上线

立即访问《Head First 设计模式》专题 我们为这本经典图书制作了专题,也想在此了解一下园子里有哪些朋友看过这本书。 --- 博客园团队 2008年12月26日 转载于:https://www.cnblogs.com/bookshop/archive/2008/12/26/1363084.html

Java加密与解密的艺术~数字签名~DSA实现

DSA 实现 /*** 2008-6-13*/ package org.zlex.chapter09_2;import java.security.Key; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.PrivateKey; import java.security.PublicKey; import …

mysql临时表和永久表_SQL临时表和永久表

drop table #Tmp --删除临时表#Tmpcreate table #Tmp --创建临时表#Tmp(ID int IDENTITY (1,1) not null, --创建列ID,并且每次新增一条记录就会加1WokNo varchar(50),primary key (ID) --定义ID为临时表#Tmp的主键);Select * from #Tmp --查询…

tcpdump - 数据包进行截获的包分析工具

From:http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html 30 分钟掌握 tcpdump:http://zhuanlan.51cto.com/art/201701/527498.htm Android tcpdump 下载:https://www.androidtcpdump.com/android-tcpdump/downloads tcpdum…

相持不下的争论:脑波,有用吗?

来源:原理、编译:糖兽在大脑中,存在着我们看不见的脑电活动。这些脑波是由在大脑周围大量存在神经细胞的协调发射而产生的,他们可以从大脑的前部传到后部,从大脑深处传到头皮。这种脑电活动被称为神经元振荡。有意思的…

CVS 客户端使用手册

IRLab 2003年2月10日 什么是CVS CVS(Version Control System.)即版本控制系统。用来记录源文件的历史信息。甚至二进制文件,媒体文件等。 例如,当软件修改时有时会产生Bugs,并且你可能在做这次修改后很长时间不会发现这…