CentOS统的7个运行级别的含义

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

运行级别就是操作系统当前正在运行的功能级别。级别是从0到6,具有不同的功能。这些级别定义在/ect/inittab文件中。这个文件是init程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d目录下的文件。

#查看系统运行级别
[root@bin2ctyun ~]# cat /etc/inittab
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
#   1 - Single user mode
#   运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   运行级别2:多用户状态(没有NFS)
#   3 - Full multiuser mode
#   运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
#   4 - unused
#   运行级别4:系统未使用,保留
#   5 - X11
#   运行级别5:X11控制台,登陆后进入图形GUI模式
#   6 - reboot (Do NOT set initdefault to this)
#   运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
# 
id:3:initdefault:
# 表示运行级别3,是默认的。

运行级别的原理: 1、在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)

[root@bin2ctyun init.d]# ls /etc/rc.d/init.d/
auditd                    halt          lvm2-monitor  nginx    rdisc        single
blk-availability          ip6tables     mysql         ntpd     restorecond  sshd
cloud-set-guest-password  iptables      netconsole    ntpdate  rsyslog      sysstat
crond                     killall       netfs         php-fpm  sandbox      udev-post
functions                 lvm2-lvmetad  network       postfix  saslauthd    xe-linux-distribution

2、在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别

[root@bin2ctyun init.d]# ls /etc/rc.d/
init.d  rc  rc0.d  rc1.d  rc2.d  rc3.d  rc4.d  rc5.d  rc6.d  rc.local  rc.sysinit

3、rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。

[root@bin2ctyun rc3.d]# ll /etc/rc.d/rc3.d
总用量 0
lrwxrwxrwx  1 root root 19 11月 14 09:35 K10saslauthd -> ../init.d/saslauthd
lrwxrwxrwx. 1 root root 20 11月 13 16:22 K50netconsole -> ../init.d/netconsole
lrwxrwxrwx  1 root root 14 3月  16 13:53 K74ntpd -> ../init.d/ntpd
lrwxrwxrwx  1 root root 17 3月  16 13:53 K75ntpdate -> ../init.d/ntpdate
lrwxrwxrwx. 1 root root 21 11月 13 16:22 K87restorecond -> ../init.d/restorecond
lrwxrwxrwx  1 root root 15 11月 14 09:34 K89rdisc -> ../init.d/rdisc
lrwxrwxrwx  1 root root 18 3月  25 12:20 K92iptables -> ../init.d/iptables
lrwxrwxrwx  1 root root 17 4月   1 22:36 S01sysstat -> ../init.d/sysstat
lrwxrwxrwx  1 root root 22 3月  25 12:20 S02lvm2-monitor -> ../init.d/lvm2-monitor
lrwxrwxrwx  1 root root 19 3月  25 12:20 S08ip6tables -> ../init.d/ip6tables
lrwxrwxrwx  1 root root 17 3月  25 12:18 S10network -> ../init.d/network
lrwxrwxrwx. 1 root root 16 11月 13 16:23 S11auditd -> ../init.d/auditd
lrwxrwxrwx  1 root root 17 3月  25 12:19 S12rsyslog -> ../init.d/rsyslog
lrwxrwxrwx. 1 root root 31 11月 14 09:05 S14xe-linux-distribution -> ../init.d/xe-linux-distribution
lrwxrwxrwx  1 root root 26 3月  25 12:20 S25blk-availability -> ../init.d/blk-availability
lrwxrwxrwx  1 root root 15 3月  25 12:18 S25netfs -> ../init.d/netfs
lrwxrwxrwx  1 root root 19 3月  25 12:18 S26udev-post -> ../init.d/udev-post
lrwxrwxrwx  1 root root 17 4月   1 22:36 S50php-fpm -> ../init.d/php-fpm
lrwxrwxrwx  1 root root 15 3月  16 16:07 S55nginx -> ../init.d/nginx
lrwxrwxrwx  1 root root 14 3月  25 12:20 S55sshd -> ../init.d/sshd
lrwxrwxrwx  1 root root 15 3月  16 15:24 S64mysql -> ../init.d/mysql
lrwxrwxrwx  1 root root 17 4月   1 22:36 S80postfix -> ../init.d/postfix
lrwxrwxrwx  1 root root 15 4月   1 22:36 S90crond -> ../init.d/crond
lrwxrwxrwx  1 root root 34 11月 14 09:29 S98cloud-set-guest-password -> ../init.d/cloud-set-guest-password
lrwxrwxrwx  1 root root 11 3月  25 12:18 S99local -> ../rc.local

4、系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件

  • 对于以K开头的文件,系统将终止对应的服务

  • 对于以S开头的文件,系统将启动对应的服务

5、查看运行级别用:runlevel

[root@bin2ctyun rc3.d]# runlevel
N 3

6、进入其它运行级别用:init N

7、注意如果输入 init 0 则为关机,init 6为重启系统

Linux运行级别的配置

cat /etc/inittab

可以看到最后一行 id:3:initdefault: 各字段解释如下: id:runlevels:action:process

id:是一个任意指定的四个字符以内的序列标号,在本文件内必须唯一;使用老版本的libc5(低于5.2.18)或a.out库编译出来的sysvinit限制为2字符。注意:像getty之类的登陆进程必须使id字段与tty编号一致,如tty1需要id=1,许多老版本的登陆进程都遵循这种规则。

runlevels:表示这一行适用于运行那个/些级别(这里是3,可以有多个,表示在相应的运行级均需要运行);另外sysinit、boot、bootwait这三个进程会忽略这个设置值。

action:表示进入对应的runlevels时,init应该运行process字段的命令的方式,常用的字段值及解释在附录内。例子中的wait表示需要运行这个进程一次并等待其结束。

process:具体应该执行的命令。例子中的/etc/init.d/rc命令启动运行级别3中应该运行的进程/命令,并负责在退出运行级时将其终止(当然在进入的runlevel中仍要运行的程序除外。)当运行级别改变,并且正在运行的程序并没有在新的运行级别中指定需要运行,那么init会先发送一个SIGTERM信号终止,然后是SIGKILL。

有效的action值如下:

respawn:表示init应该监视这个进程,即使其结束后也应该被重新启动。
wait:init应该运行这个进程一次,并等待其结束后再进行下一步操作。 once:init需要运行这个进程一次。 boot:随系统启动运行,所以runlevel值对其无效。 bootwait:随系统启动运行,并且init应该等待其结束。 off: 没有任何意义。
initdefault:系统启动后的默认运行级别;由于进入相应的运行级别会激活对应级别的进程,所以对其指定process字段没有任何意义。如果inittab文件内不存在这一条记录,系统启动时在控制台上询问进入的运行级。 sysinit:系统启动时准备运行的命令。比如说,这个命令将清除/tmp。可以查看/etc/rc.d/rc.sysinit脚本了解其运行了那些操作。 powerwait:允许init在电源被切断时,关闭系统。当然前提是有U P S和监视U P S并通知init电源已被切断的软件。RH linux默认没有列出该选项。 powerfail:同powerwait,但init不会等待正在运行的进程结束。RH linux默认没有列出该选项。 powerokwait:当电源监视软件报告“电源恢复”时,init要执行的操作。
powerfailnow:检测到ups电源即将耗尽时,init要执行的操作,和powerwait/powerfail不同的哟。
ctrlaltdel:允许init在用户于控制台键盘上按下C t r l + A l t + Del组合键时,重新启动系统。注意,如果该系统放在一个公共场所,系统管理员可将C t r l + A l t + Del组合键配置为别的行为,比如忽略等。我是设置成打印一句骂人的话了^o^。 kbrequest:监视到特定的键盘组合键被按下时采取的动作,现在还不完善。 ondemand:A process marked with an ondemand runlevel will be executed whenever the specifiedondemand runlevel is called. However, no runlevel change will occur(ondemand runlevels are ‘a’, ‘b’,and ‘c’

补救措施:

如果您的机器进入了这样一种状态,系统由于损坏的/etc/inittab而不能boot,由于受损的/etc/passwd而不能登入,或者干脆就是忘记了口令。怎么办?

法1: 在LILO boot 提示符下键入 linux 1 而boot进入单用户模式,这是一个几乎没有装载任何服务的状态,您可以在提供的shell下执行修复命令。

法2: 在启动后的 lilo 提示符下输入: init=/bin/sh rw 就可以使机器进入运行级1 , 并把 root 文件系统挂为读写。他会跳过所有系统认证, 让你使用passwd 程序 来改变root口令,然后启动到一个新的运行级。

2法的区别:

单用户模式和传入init=/bin/sh 是不同的 单用户模式会做rc.sysinit的初始化,就是系统的最基本初始化,比如检查文件系统,开启swap,加载模块,等等而传入init=/bin/sh 则不做任何初始化,只是给你个shell而已。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570072.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

noip2004普及组第2题 花生采摘

题目描述 鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!――熊字”。 鲁宾逊先生和多多都很开心,因为花生正是…

命令补全

yum install -y bash-completion转载于:https://www.cnblogs.com/tony3154/p/10095259.html

Centos查看用户登陆记录

首先简单介绍一下Centos中记录登陆信息的日志文件。 有关当前登录用户的信息记录在文件utmp中;登录进入和退出纪录在文件wtmp中;最后一次登录文件可以用lastlog命令察看。 数据交换、关机和重起也记录在wtmp文件中。所有的纪录都包含时间戳。 每次有一个…

针对科技文章的多标签分类

0. 起 最近没有更新。暑假之后学的东西也比较杂,看了一下基于DL的智能美颜,感觉入了个大坑。前前后后看了传统的轮廓提取算法和FCN等等,调代码巴拉巴拉几个星期就这么过了。前几天看ACM的best paper也觉得很有意思,两个步骤&#…

Centos服务器查看当前的并发数

作为运维人员我们经常需要看下Centos服务器的当前并发数,来了解下服务器当前是否达到并发瓶颈。 那么如何查看呢?使用下面的命令可以分组查看各种连接状态。 netstat -n | awk /^tcp/ {S[$NF]} END {for(a in S) print a, S[a]}返回结果: SYN…

Rest_Framework之频率组件部分

一、RestFramework之频率组件源码部分 频率组件的源码部分和权限组件流程一模一样的,这里就不多说了,直接上源码的主要逻辑部分: def check_throttles(self, request):"""Check if request should be throttled.Raises an app…

CentOS服务器下对mysql的优化

一、mysql的优化思路 mysql的优化分为两方面: 1. 服务器使用前的优化 2. 服务使用中的优化 二、mysql的基础优化步骤 1. 硬件级优化 (1). 最好mysql自己使用一台物理服务器 (2). 内存和CPU方面,根据需求给予…

【使用指南】WijmoJS 前端开发工具包

为方便广大前端开发人员更好的使用 WijmoJS 前端开发工具包,葡萄城专门推出了 WijmoJS 使用指南,该指南详细地介绍了如何把 WijmoJS 各种强大的功能应用到您自己的 Web 项目中,助您轻松掌握产品使用技巧,快速完成产品选型。 本指南…

phpMyAdmin4.4.10安装

1.下载地址: phpMyAdmin4.4.10 https://files.phpmyadmin.net/phpMyAdmin/4.4.10/phpMyAdmin-4.4.10-all-languages.zip Apache 2.4.12(VC9) http://www.apachehaus.com/cgi-bin/download.plx php-5.4.42(VC9&#xff09…

汇编实验九

20171308171 胡欣怡 一、实验目的1. 掌握十进制两位数输出的方法2. 理解 8025 彩色字符模式显示原理3. 综合应用寻址方式和汇编指令完成应用编程二、实验准备1. 复习数值和数字字符之间的转换方法,div 指令用法2. 学习 P187-189 支撑材料及「实验 9 提示」&#xff…

Tensorflow取消占用全部GPU

参考:https://www.cnblogs.com/jiu0821/p/9501665.html Tensorflow默认是会占用全部的GPU,而有时候你根本不需要那么占用那么多GPU资源,这时候就可以采用如下三种方法进行解决: 1、在构造tf.Session()时候通过传递tf.GPUOptions作…

mysql5.7.12安装问题

mysql5.7.6之后不再有data数据目录,需手动初始化数据目录。 在Windows上,使用这些命令之一: C:\> bin\mysqld --initialize C:\> bin\mysqld --initialize-insecure 使用 --initialize为 “缺省安全”安装(会生成一个随机的初始 root密码)。不过密码会被标记为…

P5068 [Ynoi2015]我回来了

传送门 解锁成就:ynoi的题目都做到过原题 因为\(n\)很小,我们可以用\(sss[u][i]\)表示到点\(u\)的距离不超过\(i\)的点的集合,这个可以用bitset存,然后先一遍bfs,再做一个前缀和就可以处理好了 询问的话,把…

U盘安装centos 7 提示 “Warning: /dev/root does not exist, could not boot” 解决办法

安装centos 7时提示 “Warning: /dev/root does not exist, could not boot” 这个问题是没有找到你的U盘,这个配置是需要在上一步需要完成的,但在上一步我们并不知道U盘的文件名,所以索性在这一步查看一下U盘的设备名,然后再回到…

bzoj 3585 mex

Written with StackEdit. 题目描述 有一个长度为\(n\)的数组\({a_1,a_2,...,a_n}\)。\(m\)次询问,每次询问一个区间内最小没有出现过的自然数。 Input 第一行\(n,m\)。 第二行为\(n\)个数。 从第三行开始,每行一个询问\(l,r\)。 Output 一行一个数&#…

ffmpeg转mp4格式

FFMPEG -i uploadfile/video/test.wmv -c:v libx264 -strict -2 uploadfile/mp4/test.mp4FFMPEG -i uploadfile/video/test.wmv -c:v libx264 -strict -2 -s 1280x720 -b 1000k uploadfile/mp4/test.mp4

(笔记)网络技术学习交流会

1、网络工程师发展历程 (1)网络管理员阶段 ①计算机硬件的维护 ②计算机系统的维护 ③局域网的维护 ④打印服务的维护 ⑤业务数据的管理(更新、备份) ⑥网站的维护(在网站上进行更新) ⑦在网络上对公司进行…

CentOS 6服务器简单安全配置

1. 禁用不使用的用户 注意:不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦。也可以usermod -L或passwd -l user锁定。 cp /etc/passwd{,.bak}修改之前先备份 vi /etc/passwd编辑用户,在前面加上#注释掉此行 注释的用…

【原创】大叔经验分享(6)Oozie如何查看提交到Yarn上的任务日志

通过oozie job id可以查看流程详细信息,命令如下: oozie job -info 0012077-180830142722522-oozie-hado-W 流程详细信息如下: Job ID : 0012077-180830142722522-oozie-hado-W -----------------------------------------------------------…

Beta 冲刺(3/7)

Beta 冲刺(3/7) Beta 冲刺 (3/7) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务 文字/口头描述 参与开发关键词提醒部分展示G…