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

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

  1. Linux下find命令用法详解

    Linux下find命令用法详解 学神VIP烟火 学神IT教育:XueGod-IT 最负责任的线上直播教育平台 本文作者为VIP学员 烟火 第一部分:根据文件名查找 1.在当前目录查找名称为test的 ...

  2. linux bin fuser,Linux中fuser命令用法详解

    描述: fuser可以显示出当前哪个程序在使用磁盘上的某个文件.挂载点.甚至网络端口,并给出程序进程的详细信息. fuser显示使用指定文件或者文件系统的进程ID. 默认情况下每个文件名后面跟一个字母 ...

  3. 【Linux】echo命令用法详解

    作者:柒号华仔 个人主页:欢迎访问我的主页 个人信条:星光不问赶路人,岁月不负有心人. 个人方向:专注于5G领域,同时兼顾其他网络协议,编解码协议,C/C++,linux等,感兴趣的小伙伴可以关注我, ...

  4. CPU使用率过高问题排查及Linux之top命令用法详解

    文章目录 问题 解决方案 top命令用法 top各输出参数含义 一.top前5行统计信息 二.进程信息 Top 1的用法 %CPU和us%的区别 问题 公司连续2天服务器告警CPU使用率过高问题,查看 ...

  5. Linux shell test命令用法详解

    test命令用法.功能:检查文件和比较值 1)判断表达式 if test (表达式为真) if test !表达式为假 test 表达式1 –a 表达式2 两个表达式都为真 test 表达式1 –o ...

  6. linux中tail命令的作用,Linux中tail命令用法详解

    tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文 ...

  7. linux下rename命令用法详解(重命名文件)

    本文介绍了linux系统中rename命令的用法,用来修改文件名.重命名文件,批量重命名文件rename是最好的选择,需要的朋友参考下. 在linux系统中重命名文件,经常用到mv命令,批量重命名文件 ...

  8. linux下xargs命令用法详解

    From:http://biancheng.dnbcw.info/shell/268829.html xargs在 linux中是个很有用的命令,它经常和其他命令组合起来使用,非常的灵活. xargs ...

  9. linux 磁盘科隆,Linux中ln命令用法详解(硬链接)

    硬连接指向的是节点(inode),是已存在文件的另一个名字,修改其中一个,与其连接的文件同时被修改;对硬链接文件进行读写和删除操作时候,效果和符号链接相同.但如果我们删除硬链接文件的源文件,硬链接文件 ...

最新文章

  1. 用ASP.NET上传大文件
  2. Linux下新增的代码放哪儿,linux – 如何在QEMU源代码中添加新设备?
  3. scp和rsync的区别和常用参数
  4. 关于vue2.0组件通信
  5. mysqli 返回一条结果_php中mysqli 处理查询结果集总结
  6. 不平等博弈问题学习记录(一)(超实数篇)
  7. HDU 1003 Maxsum
  8. MODIS数据的简介和下载(三)——MODIS数据下载方式(基于MODIS Web Service)
  9. 2012年3月份工作总结 ~ 之 ~ PDF 作业对应 (虽然这个作业没有什么意思,但是非常值得总结)
  10. “ 鸡尾酒会问题”(cocktail party problem)
  11. keras实现DCGAN生成mnist原代码
  12. C# 调用C++DLL声明 常规参数/结构体/指针/数组
  13. C++使用Code Runner添加编译参数
  14. js做gif动画【MovieClip插件】
  15. 著名建筑师马岩松元宇宙首作落地百度希壤 迪奥元宇宙首展同期揭幕
  16. 解决hashcat报错
  17. Java设计模式——Command模式(容易,次要)
  18. Unity FPS显示工具
  19. STM32CubeMx + LWIP(实现UDP组播/MQTT/热插拔)系列 四 ----- MQTT的连接与使用
  20. 改变自己 只需要两年

热门文章

  1. 训练神经网络时如何确定batch size?
  2. 从朴素贝叶斯到贝叶斯网
  3. 简化Swagger使用的自制Starter:spring-boot-starter-swagger,欢迎使用和吐槽
  4. Spring Boot 2.x基础教程:配置文件详解
  5. 斯坦福李纪为博士毕业论文:让机器像人一样交流
  6. Linux-Centos 安装Anaconda(2021)
  7. 3 操作系统第二章 进程管理 进程定义、特征、组织、状态与转换
  8. CSS每日学习笔记(3)
  9. phpstorm 不能自动打开上次的历史文件
  10. 对于使用progisp软件进行ISP编程时进入不了编程模式的解决方法