RHEL6入门系列之二十八,init进程与系统运行级别

简介:

从今天开始,我们来学习进程和服务管理的相关内容。

一、 基本概念
 
1、进程的概念
进程是系统中正在运行的程序,它是操作系统资源分配和调度的基本单位。在 Linux系统中,并非每个程序只能对应一个进程,有的程序启动后可以创建一个或多个进程,例如提供Web服务的httpd程序,当有大量用户同时访问web页面时,httpd程序可能会创建多个进程来提供服务。
在进程的运行过程中,通常会在 3种基本状态之间转换:运行态、就绪态、等待态(阻塞态)。

运行态是指当前进程已分配到CPU,它的程序正在处理器上执行时的状态。处于运行态的进程个数不能大于CPU的数目,在一般单CPU机制中,任何时刻处于运行态的进程最多有一个。
就绪态是指进程已具备运行条件,但因为其他进程正占用CPU,所以暂时不能运行而等待分配CPU的状态。一旦把CPU分给它,立即就可以运行。在操作系统中,处于就绪态的进程数目可以是多个。
等待态(阻塞态)是指进程因等待某种事件发生(如等待某一输入、输出操作完成,等待其它进程发来的信号等)而暂时不能运行的状态。此时即使CPU空闲,等待态的进程也不能运行。系统中处于这种状态的进程也可以是多个。
与使用数字标记用户账号、组账号类似,Linux系统中的进程也使用数字进行标记,每个进程的身份标记号称为PID。如在Linux系统的启动过程中,“/sbin/init”是内核加载运行的第一个程序,相应的init进程对应的pid号永远为1。

2、服务的概念
Linux中有一些特殊的程序,启动后就会持续在后台执行,等待用户或其它软件调用,这种程序称为服务。
Linux系统中提供了很多服务,这些服务依照其功能可以区分为系统服务与网络服务。
某些服务的服务对象是Linux系统本身,或者是Linux系统中的用户,这类服务称为系统服务。Linux系统中更多的服务是用来提供给网络中的其他客户端调用,这类服务统称为网络服务。例如提供远程登录的sshd服务,提供网站浏览功能的httpd服务等。

二、init进程与系统运行级别

init服务是 Linux系统中第一个被执行的程序,它主要负责建立系统使用环境,并确保系统正常运行。
init服务运行以后将陆续执行系统中的其它程序,不断生成新的进程,这些进程称为 init进程的子进程,反过来说init进程是这些进程的父进程。这些子进程也可以进一步生成各自的子进程,依此不断繁衍下去,最终构成一棵枝繁叶茂的进程树,共同为用户提供服务。所以,init进程是维持整个Linux系统运行的所有进程的始祖,init进程是不允许被轻易终止的。
init服务的配置文件是 /etc/inittab,init进程运行后将按照该文件中的配置内容设置系统的运行级别。
/etc/inittab文件的主要内容如下图所示。
Linux系统中,将各种服务程序相互组合构成不同的搭配关系,分别满足不同的系统需求,在系统运行时,采用的每一种服务搭配称之为“运行级别”(类似于Windows系统中的正常启动、安全模式、不带网络的安全模式等概念)。默认的系统运行级别包括七种,其功能和服务各不相同。
  • 0:关机状态,使用该级别时将会关闭主机。
  • 1:单用户模式,不需要密码验证即可登录系统,多用于系统维护。
  • 2:字符界面的多用户模式(不支持网络)。
  • 3:字符界面的完整多用户模式,大多数服务器主机运行在此级别。
  • 4:未分配使用。
  • 5:图形界面的多用户模式,提供了图形桌面操作环境。
  • 6:重新启动,使用该级别时将会重启主机。
如果系统中安装了图形桌面环境,默认的系统运行级别是 5。
不同的运行级别代表了系统不同的运行状态,在每种状态下所运行的服务或程序都有所区别,明确当前所处的运行级别将有助于管理员对一些应用故障的排除。若未能确知当前所处的运行级别,可以使用 runlevel命令进行查询,输出结果中分别包含切换前的级别和目前的级别。
例:查看系统的当前运行级别 ,若之前未切换过运行级别,第一列将显示“N”。
[root@localhost ~]# runlevel
N 5
当用户需要将系统转换为其它的运行级别时,可以使用 init命令进行,只要使用与运行级别相对应的数字(0~6)作为命令参数即可。
例:为节省服务器资源,将运行级别由图形模式( 5)切换为字符模式(3),并确认状态。
[root@localhost ~]# init 3
[root@localhost ~]# runlevel
5 3
再如,切换到运行级别0,即相当于关闭Linux系统。
[root@localhost ~]# init 0
切换到运行级别6,即相当于重启Linux系统。
[root@localhost ~]# init 6
init命令只能临时切换运行级别,要实现永久切换必须修改配置文件 /etc/inittab。
这个文件中的绝大多数内容都是注释,起实质作用的只有最后这一行:
id:5:initdefault:
这一行决定了系统的默认运行级别。默认运行级别一般建议设置为 5或3,千万不要设置为0或6,否则将导致系统无法启动。由于Linux主要是作为服务器操作系统,Linux服务器平时一般都是放置在数据中心机房中,由管理员对其进行远程管理。对Linux系统的管理操作一般都是在字符界面下通过命令完成的,很少用到图形界面,而且图形界面也要消耗更多的系统资源,同时也会导致系统不稳定,所以大多数情况下系统的运行级别都是被设置为3。

 

三、在单用户模式修改root用户密码
 
在运行级别 1所代表的单用户模式下,系统处于最原始的状态,所有网络服务都未启动,所有人都可以直接以root用户身份并且无需输入密码即可登录系统,所以单用户模式常被用于修复各种系统故障。下面我们以破解root用户密码为例来介绍下单用户模式的使用。
首先将系统重启,在系统启动到倒数计时那一步时按回车键出现引导菜单,选择“ kernel”行,按“e”键进入命令编辑状态。

 

然后在 auto rhgb quiet后面输入引导模式,这里输入1,用来告诉GRUB当启动这个操作系统时,传递参数1给操作系统,使系统在这次启动时进入单用户模式。按回车确认之后,又返回到上面的那个界面,按b重启系统即可进入单用户模式。

进入单用户模式后,可以执行passwd命令修改root用户密码,修改完之后再执行reboot命令重启系统,这个就不细说了。


本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1130029

相关文章
|
1月前
|
Linux C语言 C++
C/C++进程超详细详解【下部分】(系统性学习day8)
C/C++进程超详细详解【下部分】(系统性学习day8)
|
2月前
|
Linux
百度搜索:蓝易云【Linux系统ps命令:查看正在运行的进程】
通过这些简洁的ps命令用法,你可以方便地查看Linux系统中正在运行的进程信息。
34 1
|
1月前
|
消息中间件 Linux API
C/C++ 进程间通信system V IPC对象超详细讲解(系统性学习day9)
C/C++ 进程间通信system V IPC对象超详细讲解(系统性学习day9)
|
1月前
|
资源调度 算法 Linux
Linux进程/线程的调度机制介绍:详细解析Linux系统中进程/线程的调度优先级规则
Linux进程/线程的调度机制介绍:详细解析Linux系统中进程/线程的调度优先级规则
71 0
|
21天前
|
算法 Linux Shell
linux系统的进程管理
linux系统的进程管理
19 2
|
29天前
|
存储 算法 Linux
【Linux 系统标准 进程资源】Linux 创建一个最基本的进程所需的资源分析,以及线程资源与之的差异
【Linux 系统标准 进程资源】Linux 创建一个最基本的进程所需的资源分析,以及线程资源与之的差异
25 0
|
1月前
|
监控 Linux Shell
【Shell 命令集合 系统管理 】⭐Linux 显示系统中的进程信息 procinfo命令 使用指南
【Shell 命令集合 系统管理 】⭐Linux 显示系统中的进程信息 procinfo命令 使用指南
26 0
|
消息中间件 监控 安全
探究如何在Linux系统中修改进程资源限制:四种方法调整进程限制,让你的系统高效运行(包含应用层getrlimit和setrlimit API)
探究如何在Linux系统中修改进程资源限制:四种方法调整进程限制,让你的系统高效运行(包含应用层getrlimit和setrlimit API)
44 0
|
1月前
|
存储 Linux 程序员
Linux进程间通信(IPC)教程 Linux信号量:讲解POSIX信号量在Linux系统进程间通信中的编程实践
Linux进程间通信(IPC)教程 Linux信号量:讲解POSIX信号量在Linux系统进程间通信中的编程实践
21 1
|
1月前
|
消息中间件 存储 安全
Linux 进程和线程介绍:介绍Linux系统中进程和线程的基本概念、执行方式和相互关系
Linux 进程和线程介绍:介绍Linux系统中进程和线程的基本概念、执行方式和相互关系
34 1
Linux 进程和线程介绍:介绍Linux系统中进程和线程的基本概念、执行方式和相互关系

相关实验场景

更多