init 命令详解

| 选择喜欢的代码风格  

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

init 命令安装:


-bash: init: command not found

#Debian
apt-get install sysvinit-core

#Ubuntu
apt-get install sysvinit-core

#Arch Linux
pacman -S sysvinit-core

#Kali Linux
apt-get install sysvinit-core

#CentOS
yum install sysvinit-core

#Fedora
dnf install sysvinit-core

#Raspbian
apt-get install sysvinit-core

init 命令补充说明:


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

init 命令语法:


/sbin/init [ -a ] [ -s ] [ -b ] [ -z xxx ] [ 0123456Ss ]
/sbin/telinit [ -t sec ] [ 0123456sSQqabcUu ]

init 命令选项:


-b:不执行相关脚本而直接进入单用户模式;
-s:切换到单用户模式。

init 命令参数:


运行等级:指定 Linux 系统要切换到的运行等级。

init 命令实例


几个常用命令:

查看系统进程命令:ps -ef | head
查看init的配置文件:more /etc/inittab
查看系统当前运行的级别:runlevel

RUNLEVEL - 运行级别:


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

运行级别是系统的软件配置,仅允许选定的一组进程存在。 由 init 生成的每个运行级别的进程在 /etc/inittab 文件中定义。 init 可以是八个运行级别之一:06,以及 Ss

通过让特权用户运行 telinit 来更改运行级别,该运行会向 init 发送适当的信号,告诉它要更改为哪个运行级别。

运行级别 0、1 和 6 被保留。 运行级别 0 用于停止系统,运行级别 6 用于重新引导系统,运行级别 1 用于使系统进入单用户模式。 运行级别 S 并不是要直接使用,而是更多的用于输入运行级别 1 时执行的脚本

运行级别 7-9 也有效,尽管没有真正记录。 这是因为“传统” Unix 变体不使用它们。 如果您感到好奇,运行级别 S 和 s 实际上是相同的。 在内部,它们是同一运行级别的别名。

0  停机(千万不能把initdefault 设置为0)
1  单用户模式
2  多用户,没有 NFS(和级别3相似,会停止部分服务)
3  完全多用户模式
4  没有用到
5  x11(Xwindow)
6  重新启动(千万不要把initdefault 设置为6)

init 涉及的文件:


/etc/inittab
/etc/initscript
/dev/console
/var/run/utmp
/var/log/wtmp
/dev/initctl

CentOS 7 之后的变化:


cat /etc/inittab 出现 inittab is no longer used when using systemd

[root@CommandNotFound ~]# cat /etc/inittab
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target

RHEL7/CentOS 7 开始使用 systemd 创建符号链接的方式指向默认运行级别的。如果想设置默认运行级别为 3 就使用下面的命令,然后重启。

$ ln -s /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target

init 命令扩展阅读:




init 命令评论

共收录到 507Linux 命令