Linux(9)RedHat7 基本命令八-init命令详解

文章目录

  • 导言
  • redhat6和redhat7区分
    • 运行级别
  • init命令
    • 作用
    • 用法
    • 详细全选项参数解释
    • 命令参数说明
  • 默认运行级别相关
    • 查看默认运行级别
    • 设置默认第三启动级别
    • 设置默认第五启动级别
  • 总结

导言

很久没写linux博文了,最近的一次是第八篇文章,教了shutdown命令,本次教init命令。

init命令是Linux下的进程初始化工具,init进程是所有Linux进程的父进程,它的进程号为1。init命令是Linux操作系统中不可缺少的程序之一,init进程是Linux内核引导运行的,是系统中的第一个进程。

redhat6和redhat7区分


在redhat7中,init的进程换成了systemd,进程号为1。

我们可以用pstree去查看。Redhat7和Redhat6的区别

在redhat6中,使用pstree可以明确的发现初始化进程为1(init):

我们可以用pstree去查看。Redhat7和Redhat6的区别

pstree -p

Linux(9)RedHat7 基本命令八-init命令详解_第1张图片

而在redhat7中,该进程为1的是systemd

输入同样的命令

pstree -p

Linux(9)RedHat7 基本命令八-init命令详解_第2张图片

运行级别

   说到init,就不得不说说系统的运行级别了。
   到底什么是运行级呢?简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从0到6 ,具有不同的功能。你也可以在/etc/inittab中查看它的英文介绍。

Linux(9)RedHat7 基本命令八-init命令详解_第3张图片

在大多数的linux发行版本中,通常有以下的runlevel:

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

多数的桌面的linux系统缺省的runlevel是5,用户登陆时是图形界面,而多数的服务器版本的linux系统缺省的runlevel是3,用户登陆时是字符界面 runlevel 1和2除了调试之外很少使用,runlevel s和S并不是直接给用户使用,而是用来为Single user mode作准备。

linux的运行模式比起windows的启动模式的优势在于:你可以在系统空闲时使用init命令切换你现在使用的runlevel,另外,当你关闭或者启动linux系统时你已经不知不觉中切换你的runlevel,系统关机进程需要调用runlevel(0或6)来关闭所有正在运行中的进程。

值得注意的是

RHEL7不再使用/etc/inittab文件进行默认的启动级别配置
systemd使用比sysvinit的运行级更为自由的target替代。
第3运行级用multi-user.target替代。
第5运行级用graphical.target替代。

runlevel3.target和runlevel5.target分别是
指向 multi-user.target和graphical.target的符号链接。

init命令

作用

切换系统运行级别

用法

init [OPTIONS...]  {COMMAND}

详细全选项参数解释

长选项 含义(作用)
--help 展示init命令帮助信息
--no-wall 在halt/power-off/reboot 之前之前不要发送留言信息

命令参数说明

Commands 功能
0 关闭系统(机器)
6 重启系统(机器)
2,3,4,5 启动runlevelX.target 单元
1,s,S 进入救援模式( rescue mode)
q,Q 重新加载init守护进程配置
u,U 重新执行init守护进程

默认运行级别相关

   值得注意的是,虽然我们仍然可以使用init 0关闭系统,但在centOS7甚至是Redhat7中,init的命令已经是兼容模式的命令,不过切换运行级别的指令换成了使用systemctl,这指令十分的重要,观看我写的第一篇linux博文的时候,那部分的时候,其实有用到这个命令,就是使用网络的时候,比如systemctl restart network,这个命令可能以后再继续讲解。

在这里,我会使用systemctl而不是init命令去实现。

查看默认运行级别

runlevel
systemctl get-default

这两个命令都可以查看默认运行级别,运行结果如下所示:

在这里插入图片描述

设置默认第三启动级别

以下不采取截图,直接命令及其返回结果,注意需要输入你的root账号密码。

[yuyuntan@localhost Desktop]$ systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.

设置默认第五启动级别

[yuyuntan@localhost Desktop]$ systemctl set-default graphical.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.

总结

  目前为止,大概是这些需要掌握的init命令及运行级别,如果后期需要补充或者有其他需要了解的,和我说说,我会相对修改。

你可能感兴趣的:(linux,命令详解)