Linux 系统任何时候都运行在一个指定的运行级上,并且不同的运行级的程序和服务都不同,所要完成的工作和要达到的目的都不同,系统可以在这些运行级之间进行切换,以完成不同的工作。
Ubuntu 的系统运行级别:
0        系统停机状态
1        单用户或系统维护状态
2~5 多用户状态
6        重新启动 
查看当前运行级别
runlevel
runlevel 显示上次的运行级别和当前的运行级别,"N"表示没有上次的运行级别

切换运行级别: 
int [0123456Ss]
即在 init 命令后跟一个参数,此参数是要切换到的运行级的运行级代号,如:用 init 0 命令关机;用 init 6 命令重新启动。

Linux 系统主要启动步骤:
   1. 读取 MBR 的信息,启动 Boot Manager
             Windows 使用 NTLDR 作为 Boot Manager,如果您的系统中安装多个版本的 Windows,您就需要在 NTLDR 中选择您要进入的系统。
             Linux 通常使用功能强大,配置灵活的 GRUB 作为 Boot Manager。
   2. 加载系统内核,启动 init 进程
             init 进程是 Linux 的根进程,所有的系统进程都是它的子进程。
   3. init 进程读取/etc/inittab文件中的信息,并进入预设的运行级别,
      按顺序运行该运行级别对应文件夹下的脚本。脚本通常以 start 参数启动,并指向一个系统中的程序。
             通常情况下, /etc/rcS.d/ 目录下的启动脚本首先被执行,然后是/etc/rcN.d/ 目录。
             例如您设定的运行级别为 3,那么它对应的启动目录为 /etc/rc3.d/
   4. 根据 /etc/rcS.d/ 文件夹中对应的脚本启动 Xwindow 服务器 xorg
             Xwindow 为 Linux 下的图形用户界面系统。
   5. 启动登录管理器,等待用户登录
             Ubuntu 系统默认使用 gdm
作为登录管理器,您在登录管理器界面中
             输入用户名和密码后,便可以登录系统。(您可以在 /etc/rc3.d/文件夹中找到一个名为 S13gdm 的链接)

安装sysv-rc-conf
sudo apt-get install sysv-rc-conf

使用sysv-rc-conf
sudo sysv-rc-conf

操作界面十分简洁,你可以用鼠标点击,也可以用键盘方向键定位,用空格键选择,"X"表示开启该服务。

用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。

如上图所示,第2列打X的项与/etc/rc2.d目录下的软连接文件完全一致,S列下选中的项与/etc/rcS.d目录下的软连接文件也完全一致

/etc/rc0.d目录下是系统关机时,执行的脚本(停止服务,卸载一些设备)

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

参考: http://no001.blog.51cto.com/1142339/411951/

rc.d的内容如下: 
init.d/ :各种服务器和程序的二进制文件存放目录。 
rcx.d/: 各个启动级别的执行程序连接目录。里头的东西都是指向init.d/的一些软连接。具体的后边叙述。 
还有三个脚本:rc.sysinit, rc, rc.local

redhat的启动方式和执行次序是: 
加载内核 
执行init程序 
/etc/rc.d/rc.sysinit # 由init执行的第一个脚本 
/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式 
/etc/rc.d/rc.local 
/sbin/mingetty # 等待用户登录

在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括: 
调入keymap以及系统字体 
启动swapping 
设置主机名 
设置NIS域名 
检查(fsck)并mount文件系统 
打开quota 
装载声卡模块 
设置系统时钟 
等等。

/etc/rc.d/rc则根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。

凡是以Kxx开头的 ,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx 从小到大来执行。

,/etc/rc.d/rc就会按上述方式调用

、3、5都把/etc/rc.d/rc.local做为初始化脚本中的最后一个,

所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。


init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的 action是wait),
将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。 
至此,LINUX的启动结束

使用者自订开机启动程序 (/etc/rc.d/rc.local)
在完成 run level 3 的服务启动后,如果我还有其他的动作想要完成时,

举例来说,我还想要寄一封 mail 给某个系统管理帐号,通知他,系统刚刚重新开机完毕,那么,是否应该要制作一个 shell script 放置在 /etc/rc.d/init.d/ 里面,然后再以连结方式连结到 /etc/rc.d/rc3.d/ 里面呢?

呵呵!当然不需要!还记得上一小节提到的 /etc/rc.d/rc.local 吧?

这个档案就可以执行您自己想要执行的系统指令了。像不像早期 DOS 年代的 autoexec.bat 与 config.sys 呢? ^_^
也就是说,我有任何想要在开机时就进行的工作时,直接将他写入 /etc/rc.d/rc.local ,那么该工作就会在开机的时候自动被载入喔!而不必等我们登入系统去启动呢!是否很方便啊!

一般来说,鸟哥就很喜欢把自己制作的 shell script 完整档名写入 /etc/rc.d/rc.local ,如此一来,开机就会将我的 shell script 执行过,真是好棒那!

ubuntu 运行级别initlevel的更多相关文章

  1. 关于Ubuntu运行级别、开机启动脚本的说明

    关于Ubuntu运行级别.开机启动脚本的说明 目录简介 1.1介绍Ubuntu下面的自启动脚本目录 1.2 Linux操作系统运行级别的概念 1.3关于操作系统自启脚本的启动顺序 1.4    Lin ...

  2. 关于Ubuntu修改默认运行级别

    第一种方法:(内核级别的)   Sudo vi /etc/default/grub 修改GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash” 为:GRUB_CMDLINE ...

  3. ubuntu 修改运行级别

    只转载了成功的, 具体参见原文  http://www.2cto.com/os/201308/237632.html 第一种方法:(内核级别的)   Sudo vi /etc/default/grub ...

  4. 修改Ubuntu默认运行级别,启动字符界面

    Ubuntu的默认开机的runlevel是2,可以用runlevel来查看当前的默认运行级别. debian系(ubuntu是基于debian)的Linux一直是用runlevel 2来默认启动,并且 ...

  5. ubuntu修改运行级别方法

    Ubuntu系统设置启动级别的问题,因自己以前遇到过,故做过笔记记录了下来:Ubuntu.Debian系列与RedHat.CentOS启动级别含义有所区别:Ubuntu系列运行级别定义如下:0 – H ...

  6. 为什么说Ubuntu的运行级别为2

    继上一篇文章http://www.cnblogs.com/EasonJim/p/7163069.html深入研究了Linux的运行级别之后,发现网上大部分都说Ubuntu的运行级别默认为2,那么下面就 ...

  7. Linux系统有7个运行级别(runlevel)

    Linux系统有7个运行级别(runlevel) 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 运行级别 ...

  8. Linux入门:运行级别解析

    Linux入门:运行级别解析   一.查看当前运行级别 Ubuntu中,runlevel命令 可以查看当前运行级别: CentOS中,who -r 命令查看当前运行级别:   www.2cto.com ...

  9. [转]linux系统的7种运行级别

    转自:http://blog.chinaunix.net/uid-22746363-id-383989.html Linux系统有7个运行级别(runlevel)运行级别0:系统停机状态,系统默认运行 ...

随机推荐

  1. 怎么去掉select的下拉箭头和输入框input类型为number时的上下箭头

    一.去掉select的下拉箭头 方法一:在select外面加一个div,设置select宽度大于div的宽度,并加一个超出隐藏属性overflow:hidden,小三角会隐藏掉: 方法二:给selec ...

  2. JavaScript模式:字面量和构造函数

    本篇主要讨论了通过字面量以构造对象的方法,比如对象.数组以及正则表达式等字面量的构造方法,同时还讨论了与类似Object()和Array()等内置构造函数相比,为什么基于字面量表示法是更为可取. 对象 ...

  3. curl应用大法

    curl -s -S -k --max-redirs 5 -m 60 --connect-timeout 60 -w  "\n\n%{time_namelookup}|%{time_conn ...

  4. Cross-site scripting(XSS)

    https://en.wikipedia.org/wiki/Cross-site_scripting Definition Cross-site scripting (XSS) is a type o ...

  5. Codeforces Round #283 (Div. 2) A. Minimum Difficulty【一个数组定义困难值是两个相邻元素之间差的最大值。 给一个数组,可以去掉任意一个元素,问剩余数列的困难值的最小值是多少】

    A. Minimum Difficulty time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  6. loadrunner分析之-网页、网络、资源分析

    在Web Page Diagnostics(网页分析)中当在场景中打开Diagnostics菜单下的Web Page Diagnostics功能,就能得到网页分析组图.通过这个图,可以对事务的组成进行 ...

  7. Wireshark 基本使用方法

    学习于: http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html

  8. 安装mongoDB时,总是报错,启动不了

    安装教程地址:https://blog.csdn.net/fengtingyan/article/details/88371232 原文地址:https://blog.csdn.net/qq_2008 ...

  9. 第一章 Web应用程序开发基础

    一.HTTP协议工作机制 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议.它是一种主流B/S架构中应用的通信 ...

  10. Leetcode811.Subdomain Visit Count子域名访问计数

    一个网站域名,如"discuss.leetcode.com",包含了多个子域名.作为顶级域名,常用的有"com",下一级则有"leetcode.com ...