网上通常的做法是:(亲自试验,不管用),如果想直接操作请看绿色字体部分
(1)第一种方法:
 
由于RedHat中是通过一个叫inittab的文件来管理运行级别的,而ubuntu中没有,所以建议在/etc/目录下创建该文件   $sudo vi /etc/initab
 
然后编辑该文件,运行级别设为3,内容如下id:3:initdefault:
 
然后重启。
 
亲自试验,不管用,Ubuntu还是进入图形界面。
 
(2)第二种方法:
 
利用sysv-rc-cong软件
 
sudo install sysv-rc-conf
 
再用root来执行
 
sudo sysv-rc-conf
 
关掉你需要的运行级别里的gdm, 或者全部都关掉
 
然后按q退出即可
 
没有试验
 
(3)第三种方法:
 
默认情况下,要想修改默认运行等级,要修改/etc/inittab文件。但是ubuntu系统并没有这个文件,而是需改/etc/init/rc-sysinit.conf这个文件。由于ubuntu默认级别为2,所以你会看到env DEFAULT_RUNLEVEL=2,将2改为3便可。重启。
 
亲自试验,不管用,Ubuntu还是进入图形界面。
 
(4)第四种方法:
 
Ubuntu安装后默认的run level为2,这个可以用runlevel命令查看。因为runlevel=2,所以在启动过程中自动执行/etc/rc2.d/目录下的以S开头的脚本。Ubuntu之所以能直接启动到图形界面,是由于运行gdm所致。所以,只要把gdm的启动脚本禁用就可以了,方法就是把文件名的第一个字母S改成 K:
cd /etc/rc2.d
sudo mv S30gdm K30gdm
 
亲自试验,相应目录下根本就没有gdm这个文件。
 
 
 
在介绍方法之前希望大家明确一个概念:
 
Ubuntu的默认开机的runlevel是2,可以用runlevel来查看当前的默认运行级别。
debian系(ubuntu是基于debian)的Linux一直是用runlevel 2来默认启动,并且runlevel定义也与redhat有区别。debian的runlevel级别定义如下:
0 – Halt,关机模式
1 – Single,单用户模式
2 - Full multi-user with display manager (GUI)
3 - Full multi-user with display manager (GUI)
4 - Full multi-user with display manager (GUI)
5 - Full multi-user with display manager (GUI)
6 – Reboot,重启
可以发现2~5级是没有任何区别的。他们为多用户模式,这和一般的linux不一样。而redhat的runlevel级别定义如下:
 
0:关机。不能将系统缺省运行级别设置为0,否则无法启动。
 
1:单用户模式,只允许root用户对系统进行维护。
 
2:多用户模式,但不能使用NFS(相当于Windows下的网上邻居)
 
3:字符界面的多用户模式。
 
4:未定义。
 
5:图形界面的多用户模式。
 
6:重启。不能将系统缺省运行级别设置为0,否则会一直重启。
 
这里补充一下,多数的linux都是用一种叫System V的机制来启动运行级别,而ubuntu使用upstart代替init启动系统进程。所以没有那个inittab文件来改默认运行级别。ubuntu 的默认运行级别文件是/etc/init/rc-sysinit.conf。
 
成功的方法:
 
第一种方法:(内核级别的)
 
Sudo vi /etc/default/grub
修改GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
为:GRUB_CMDLINE_LINUX_DEFAULT=” text”
然后运行下sudo update-grub2就可了
 
第二种方法:(基于upstart的”正统”方法)
 
ubuntu的upstart的体系下,/etc/init.d里面基本上都是连接到/lib/init/upstart-job的软连接,所以,对 initscripts的请求全部转化为upstart事件,upstart系统对启动项目的管理全部根据/etc/init里面的配置文件来启动,可以启动lightdm的事件就让人咂舌
 
编辑文件 /etc/init/lightdm.conf
 
start on ((filesystem
and started dbus
and (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1
or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udevtrigger))
or runlevel PREVLEVEL=s)
stop on runlevel [016]
 
可见,一旦发生文件系统初始化,DBUS总线启动和发生graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1 or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1 or stopped udevtrigger or runlevel PREVLEVEL=s这里面的任何一个事件,GDM就会被启动,只在运行级别在016的时候,GDM不启动。
所以,事件也就明了了、要在upstart层面干掉gdm,把上面的启动相关事件注释掉,改写下就行了
 
由于ubuntu 默认模式为2,所以:
start on (filesystem
and started dbus
and (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1
or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udevtrigger)
and runlevel [345])
stop on runlevel [0126]
 
重启。
 
第三种方法:
 
1、阻止默认图形桌面启动
 
ubuntu 12.04默认的开机会进入一个图形界面,他是由lightdm进程来实现的。
 
首先要做的,就是阻止这个lightdm的进程开机启动。 做法:
 
(1)、查看文件/etc/init/rc-sysinit.conf,在第14行附近:确认“env DEFAULT_RUNLEVEL=2”。2是新装系统默认的,确保不被修改。
 
(2)、编辑文件 /etc/init/lightdm.conf,在第12行附近,原句“ and runlevel [!06]” 改为“ and runlevel [!026]”。
 
解释:linux系统都有一个运行级别(runlevel)的概念,不同的运行级别配置将导致系统的启动过程有很大差异,比如当配置 runlevel为 1是,是不进入图形界面的。系统启动过程中会有一个init进程来拉起许多其他进程(各种系统服务,窗口界面)。在ubuntu上(11.10,12.04是这样,其他版本或其他linux发行版不确定)init会执行两个目录下的脚本,一个是/etc/init/下的,另一个是/etc/rc?.d/下的,问号可能是0~6的其中一个数字,代表运行级别。接下来,讲解一下流程以加深理解。
 
在ubuntu上,init进程首先执行/etc/init/目录下的rc-sysinit.conf,这个文件指明了本次启动的默认运行级别。这是上面第一步的意义:确保默认运行级别是2。接下来目录/etc/init下的其他脚本的执行都会根据不同的运行级别做出不同的动作,比如lightdm会判断运行级别是否处于1,2,3,4,5中的一个,是则启动lightdm,不是则不启动lightdm。这便是上面第二步的意义,修改 lightdm.conf ,把“2”加入到判断语句,使得lightdm在运行级别2的时候不要启动。明白了这些,你就可以灵活一点,例如把默认级别设置为3,而把3加入那个判断语句,也可以达到阻止lightdm启动的效果。完成了/etc/init/目录下的启动动作,init进程会继续执行/etc/rc2.d目录下的脚本。
 
2、关闭Ubuntu的载入画面
 
ubuntu启动时,会有一个ubuntu字样出现在屏幕,文字下方有闪烁的点,这时按ESC可以在动画和文字界面之间切换。这一步骤不属于lightdm,而是一个叫 plymouth 的进程在起作用。实际上,plymouth的意义就在于,在开机到图形桌面 (lightdm)起来这段时间里展示出一个动画,从而提高用户体验。
 
屏蔽的方法:
 
(1)、编辑 /etc/default/grub文件,原文11行附近:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 
 
去掉”splash“,改后:
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
(2)、执行命令:
sudu updat-grub
重启,即可看到,不再有载入画面出现
阅读下文能够更好的理解(扩展阅读):
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 的链接) 
ubuntu的init与系统服务设置
 
init
 
Init是位于/sbin/init的一个程序,它是在linux下,在系统启动过程中,初始化所有的设备驱动程序和数据结构等之后,由内核启动的一个用户级程序,并由此init程序进而完成系统的启动过程。
 
ubuntu与传统的linux略有不同,使用upstart完成系统的启动,但表面上仍维持init程序的形式。
 
运行级别
传统上,linux有几种不同的运行级别,包括如下几种
# 0 - 停机
# 1 - 单用户模式
# 2 - 多用户,没有 NFS
# 3 - 完全多用户模式(标准的运行级)
# 4 –系统保留的
# 5 – X11(x window)
# 6 - 重新启动
 
系统启动后处于哪一种级别由init读取/etc/inittab文件中的缺省级别设置来确定,一半图形界面的系统是进入级别3。
 
 
 
但是ubuntu与传统的不太一样,默认情况下是找不到/etc/inittab文件的,而且运行级别也有差别,具体分这样几个级别:
 
 
 
# 0 –关闭系统
 
# 1 –单用户模式
 
# 2~5 –完整的多用户模式
 
# 6 –重新启动
 
也就是说,默认情况下级别2、3、4、5都是一样的,同时系统的默认级别设定也不是在inittab文件中,而是写在/etc/init/rc- sysinit.conf文件中。打开此文件,可以找到下面一句:
 
env DEFAULT_RUNLEVEL=2
 
这表明系统当前默认是进入级别2。
 
另外,在此文见中还有一段以if [ -r /etc/inittab ] 开始的代码,这里保留了使用inittab指定系统默认运行级别的功能,也就是说,如果用户手动创建了/etc/inittab,那么init将以 /etc/inittab中指定的默认运行级别进行系统的启动。比如说用户希望系统以级别3为默认运行级别,则只需在inittab文件中加入如下一行:
 
id:3:initdefault:
 
在经过/etc/init/rc-sysinit.conf确定运行级别后,init将进一步运行/etc/init.d/rc,然后根据级别进入 /etc/rc[?].d启动或关闭相应的服务。
 
服务的启动与关闭脚本
 
ubuntu下启动与关闭服务的脚本存放与/etc/rc[?].d目录下。其中[x]表示0~6,分别对应级别0~6,如/etc目录下的 rc0.d  rc1.d  rc2.d  rc3.d  rc4.d  rc5.d  rc6.d。假设rc-sysinit.conf或inittab中指定的默认级别是2,那么init将执行/etc/rc2.d目录下的脚本启动或关闭相应服务。
 
如果打开/etc/rc[?].d目录,会发现这些目录下的文件都是形如Snnxxxx或Knnxxxx的符号链接,而且都是指向/etc /init.d。也就是说不同运行级别下服务的启动或关闭脚本均是放在/etc/init.d下,只不过根据不同级别的需要,在对应/etc /rc[?].d目录下放一个链接,不同的级别会需要不同的服务,因此不同/etc/rc[?].d目录下的链接文件也不尽相同以此区分。
 
其中链接文件中以S开头的表示在调用/etc/init.d目录中对应脚本的时候会传递一个start参数,也就是启动对应服务,而以K开头的则是传递一个stop参数,由此关闭此服务,此处的K表示kill。
 
S和K后面的nn是一个数字,表示本脚本被执行的先后顺序,小号在前大号在后,这样以解决不同服务之间可能存在的先后依赖关系。比如说ftp服务依赖于网络服务的启动,所以ftp服务的编号就要大于网络服务的编号,在网络服务启动后再行启动。
 
最后的xxxx则是服务的名字。
 
另外,除了/etc/rc[0~6].d文件外,还有一个/etc/rcS.d目录,这个目录下的服务脚本与/etc/rc[0~6].d格式类似,也为指向/etc/init.d中的脚本的链接,但是会在/etc/rc[0~6].d中的脚本执行前首先被执行。

runlevel 运行级别的更多相关文章

  1. Linux runlevel 运行级别

    runlevel可以认为是系统状态,形象一点,您可以认为runlevel有点象微软的windows操作系统中的Normal,safemode,和Command prompt only. Linux系统 ...

  2. linux runlevel运行级别

    1.linux通过设定runlevel来设定系统使用不同的服务启动,从而使得linux运行的环境有所不同. 2.当系统启动后会按照以下步骤完成初始化:运行/sbin/init程序加载器配置文件/etc ...

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

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

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

    原文地址:http://www.cnblogs.com/dkblog/archive/2011/08/30/2160191.html Linux系统有7个运行级别(runlevel) 运行级别0:系统 ...

  5. linux系统的7种运行级别

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

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

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

  7. linux的7种运行级别

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

  8. linux的7种运行级别<学习笔记>

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

  9. Linux系统——运行级别

    学习之前先了解下Linux系统的运行级别和其原理,博主使用的是Linux系统中的Redhat9.0版本,之后的学习也是基于这个系统版本. Linux系统的7个运行级别(runlevel) 运行级别0: ...

随机推荐

  1. 2.8 学习总结 之 JQ初识

    一.说在前面 昨天 学习了kotlin的相关知识 今天 学习JQ Jquery它是javascript的一个轻量级框架,对javascript进行封装,它提供了很多方便的选择器.供你快速定位到需要操作 ...

  2. JavaScript中的apply()方法和call()

    apply()和call()的真正用武之地是能够扩充函数赖以运行的作用域   两个函数的第一个参数是都是,要执行语句的作业域,即this 区别是 apply后面只能传一个大参数,call后面参数只能一 ...

  3. centos下安装tomcat8.

    一.tomcat安装之前,首先安装java jdk,所以手首先将相关安装包都下载传到虚拟机上 1.下载java的linux----jdk1.8安装 到官网上下载与本虚拟机版本位相适应的位节数的Linu ...

  4. Windows平台整合SpringBoot+KAFKA__第2部分_代码编写前传

    开始准备写测试代码 看半天不太懂(我也算是小白级别的,看我搞windows版本的kafka就知道了), 看文档无聊,偶然看到一个KAFKA的windows管理程序,于是就试试就装了一个,感觉那个玩意也 ...

  5. segger rtt 输出 log

    调试 mcu 的时候,使用 jlink 的 rtt 可以方便的输出信息. 输出有两种模式, client 和 logger. client 必须依附其他程序,比如说 mdk 调试状态,或者 logge ...

  6. Flink 复杂事物处理

    简介 FlinkCEP是在Flink之上实现的复杂事件处理(CEP)库. 它允许你在无界的事件流中检测事件模式,让你有机会掌握数据中重要的事项. Flink CEP 首先需要用户创建定义一个个patt ...

  7. UVA - 1153 Keep the Customer Satisfied(顾客是上帝)(贪心)

    题意:有n(n<=800000)个工作,已知每个工作需要的时间qi和截止时间di(必须在此之前完成),最多能完成多少个工作?工作只能串行完成.第一项任务开始的时间不早于时刻0. 分析:按截止时间 ...

  8. arm安装cuda9.0,tensorflow-gpu, jetson tx2安装Jetpack踩坑合集

    因为要在arm(aarch64)架构的linux环境中安装tensorflow-gpu,但是官方tf网上没有对应的版本,所以我们找了好久,找到一个其他人编译好的tensorflow on arm的gi ...

  9. oracle(3)select语句中常用的关键字说明

    1.select 查询表中的数据 select * from stu: ---查询stu表所有的数据,*代表所有2.dual ,伪表,要查询的数据不存在任何表中时使用 select sysdate f ...

  10. php添加openssl扩展

    很多时候都会用到openssl组件,下面就介绍一下linux下php安装openssl扩展: 安 装openssl组件,一般php安装目录中都有许多扩展组件的安装包,当然也包括openssl,例如我的 ...