博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RHEL6入门系列之二十八,init进程与系统运行级别
阅读量:6637 次
发布时间:2019-06-25

本文共 2652 字,大约阅读时间需要 8 分钟。

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

一、 基本概念
 
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命令重启系统,这个就不细说了。

转载地址:http://wpivo.baihongyu.com/

你可能感兴趣的文章
获取近30天的数据的时间方式
查看>>
Android AChartEngine 个性化设置
查看>>
Cool tool: Linux字符画figlet
查看>>
[转]windows下安装python MySQLdb及问题解决
查看>>
关于浏览器兼容问题:获取div的值
查看>>
2019-4-22 linux学习
查看>>
PKUWC2019游记
查看>>
控制转移指令分类与机器码
查看>>
BZOJ5279: [Usaco2018 Open]Disruption
查看>>
HDU 1312 Red and Black
查看>>
HDU 2871 Memory Control
查看>>
poj 1811 Prime Test
查看>>
ios 续费 问题 冰山一角
查看>>
一些奇怪的坑+好东西
查看>>
【Dairy】2016.10.24 - made 嘲讽垃圾
查看>>
查找表包含的页和页所在的表
查看>>
快速高效实现微信小程序图片上传与腾讯免费5G存储空间的使用
查看>>
vue实现PC端调用摄像头拍照人脸录入、移动端调用手机前置摄像头人脸录入、及图片旋转矫正、压缩上传base64格式/文件格式...
查看>>
mvc笔记(2012-11-02)
查看>>
求二叉排序树的镜像
查看>>