Linux的运行级别

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

Linux的7个运行级别

级别 描述
0 系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动,机器关闭
1 单用户工作状态,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录
2 多用户状态,没有NFS支持
3 完整的多用户模式,有NFS,登陆后进入控制台命令行模式
4 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置
5 X11控制台,登陆后进入图形GUI模式,X Window系统
6 系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启

运行级别原理:

  • 在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)
  • 在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别
  • rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。
  • 系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件:对于以K开头的文件,系统将终止对应的服; 对于以S开头的文件,系统将启动对应的服务
  • 查看运行级别用:runlevel
  • 进入其它运行级别用:init N,如果init 3则进入终端模式,init 5则又登录图形GUI模式
  • 另外init0为关机,init 6为重启系统

标准的Linux运行级别为3或5,如果是3的话,系统就在多用户状态;如果是5的话,则是运行着X Window系统。

不同的运行级别有不同的用处,也应该根据自己的不同情形来设置。例如,如果丢失了root口令,那么可以让机器启动进入单用户状态来设置。在启动后的命令提示符下输入:

init=/bin/sh rw

这样就可以使机器进入运行级别1,并把root文件系统挂为读写。它会路过所有系统认证,让你使用passwd程序来改变root口令,然后启动到一个新的运行级。

设置开机启动服务

使用chkconfig设置

  • 将启动文件cp到 /etc/init.d/或者/etc/rc.d/init.d/(前者是后者的软连接)下

  • 用文本编辑器如 vi 打开文件,文件前面务必添加如下三行代码,否侧会提示chkconfig不支持

!/bin/sh 告诉系统使用的shell,所以的shell脚本都是这样

chkconfig: 35 20 80 分别代表运行级别,启动优先权,关闭优先权,此行代码必须

description: http server(自己随便发挥)//两行都注释掉!!!,此行代码必须

- chkconfig --add [脚本文件名]  操作后服务就已经添加到启动项了

### 编辑文件 /etc/rc.local
- 用文本编辑器如 *vi* 打开该文件
- 在文件末尾(exit 0之前)加上你开机需要启动的程序或执行的命令即可(执行的程序需要写绝对路径,添加到系统环境变量的除外) ### 自己编写启动脚本
- 编写服务启动shell脚本
- 将写好的脚本(.sh文件)放到目录 /etc/profile.d/ 下,系统启动后就会自动执行该目录下的所有shell脚本 ### 使用 *systemctl* 命令添加
- systemctl enable [服务名称]

Linux的运行级别和设置开机启动服务的方式的更多相关文章

  1. ubuntu下设置开机启动服务

    原文:http://blog.csdn.net/dante_k7/article/details/7213151 在ubuntu10.04之前的版本都是使用chkconfig来进行管理,而在之后的版本 ...

  2. Linux系统中svn服务器设置开机启动

    安装完svn服务器后虽然好用但是因为经常重启Linux服务器,每次重启完就要去手动启动svn服务器,很是麻烦,于是在网上找了一些方法后,自己把svn服务器设置成开机启动 步骤一:安装svn服务器: h ...

  3. Linux上安装ZooKeeper并设置开机启动(CentOS7+ZooKeeper3.4.10)

    1下载Zookeeper 2安装启动测试 2.1上载压缩文件并解压 2.2新建 zookeeper配置文件 2.3安装JDK 2.4启动zookeeper 2.5查看zookeeper的状态 3将Zo ...

  4. windows系统下同时启动三台Tomcat服务的配置&并设置开机启动服务

    1.tomcat 7.0.82下载地址:链接:https://pan.baidu.com/s/1i51pAgl 密码:mxol 2.解压apache-tomcat-7.0.82-windows-x64 ...

  5. CentOS linux7 设置开机启动服务

    常用命令 描述                                 旧命令  新命令 使服务自动启动          chkconfig --level 3 http on  syste ...

  6. CentOS 7设置开机启动服务,添加自定义系统服务

      由于版本的迭代,最近刚刚接触 CentOS 7,各种蛋疼 发现跟以前用的CentOS 6有着一些本质上的差别,连启动服务都不会启动了,一怒之下自己找资料,于是有了这篇文章... 1.建立服务文件 ...

  7. linux mongodb开机启动(服务的方式)

    MongoDB安装 https://blog.csdn.net/junshangshui/article/details/79371316 设置mongodb.service启动服务 cd /lib/ ...

  8. Ubuntu设置开机启动服务

    一.查看当前的运行级别 runlevel 二.加载服务 $ cd /etc/init.d $ sudo update-rc.d test defaults 95 三.增加默认启动脚本 sudo vi ...

  9. centos 7 设置开机启动服务

    2018-12-25 Centos7下添加开机自启动脚本和服务的方法 以docker 服务为例 1.centos7自带命令设置 systemctl enable docker.service 2.设置 ...

随机推荐

  1. C++ 单链表模板类实现

    单链表的C语言描述 基本运算的算法——置空表.求表的长度.取结点.定位运算.插入运算.删除运算.建立不带头结点的单链表(头插入法建表).建立带头结点的单链表(尾插入法建表),输出带头结点的单链表 #i ...

  2. apache如何发布地图服务

    svg jpg Tomcat和apache是什么关系呢?:https://www.cnblogs.com/zangdalei/p/8057325.html geoserver又是怎么来的呢? Tomc ...

  3. CSU 1551 Longest Increasing Subsequence Again(树状数组 或者 LIS变形)

    题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1551 升级版:Uva 1471 题意: 让你求删除一段连续的子序列之后的LIS. 题 ...

  4. Django 前戏

    1.web应用 web应用程序是一种可以通过web访问的应用程序.程序最大的好处就是用户很容易的访问应用程序,用户只需要有浏览器即可,不需要在安装其他的软件,应用程序有两种模式C/S,B/S C/S模 ...

  5. JVisualVM 模拟一次内存泄漏场景分析

    首先贴一段内存泄漏的代码并且执行.(内存泄漏:GC回收不掉的实例对象) package com.example.demo.memoryLeakDemo; import com.example.demo ...

  6. instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例。

    http://lavasoft.blog.51cto.com/62575/79864/    深入Java关键字instanceof 2008-06-02 07:50:43 标签:Java 关键字 休 ...

  7. Intent的setFlag和addFlag有什么区别?

    Intent的setFlag和addFlag有什么区别?setFlag是把之前的替换掉,addFlag是添加新的 Intent it=new Intent(); it.setClass(Setting ...

  8. SVG绘制多个圆

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. Python-位操作 ( &,|,~,^,<<,>>

    用于提高运算速度,规避算术运算符 在位操作运算中,不应该试图考虑先得到一个数的二进制码 ,而是应该将这个数看作是一个二进制码,二进制补码与整数之间是一一对应的. 诚然Python中有内置函数bin将一 ...

  10. poj2431Expedition

    A group of cows grabbed a truck and ventured on an expedition deep into the jungle. Being rather poo ...