Linux命令init的使⽤说明
Linux 命令 init 的使⽤说明
init 是 Linux 系统操作中不可缺少的程序之⼀。所谓的 init 进程,它是⼀个由内核启动的⽤户级进程。 init 进程由 0 进程创建,完成系统的初始化,是系统中所有其他⽤户进程的祖先进程。
内核⾃⾏启动(已经被载⼊内存,开始运⾏,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动⼀个⽤户级程序init 的⽅式,完成引导进程。所以, init 始终是第⼀个进程(其进程编号始终为1)。
Linux 中的所有进程都是由 init 进程创建并运⾏的。⾸先 Linux 内核启动,然后在⽤户空间中启动 init 进程,再启动其他系统进程。在系统启动完成后, init 将变成为守护进程监视系统其他进程。
内核会在过去曾使⽤过 init 的⼏个地⽅查它,它的正确位置(对Linux系统来说)是 /sbin/init 。如果内核不到 init ,它就会试着运⾏ /bin/sh ,如果运⾏失败,系统的启动也会失败。
init ⼀共分为7个级别,这 7 个级别的所代表的含义如下:
等级描述
0停机或者关机(千万不能将 initdefault 设置为0)
1单⽤户模式,只root⽤户进⾏维护
2多⽤户模式,没有使⽤NFS(Net File System),不能联⽹
3完全多⽤户模式(标准的运⾏级别),即命令⾏界⾯(字符界⾯)
4安全模式
5(X Window)图形化界⾯模式(即图形界⾯)
6重启(千万不要把 initdefault 设置为6)
⽤法如下。 ⽐如:
$ #切换到多⽤户-命令⾏模式
$ init 3
$ #切换到切换到图形化界⾯
$ init 5
请注意 , init 命令需要 root 权限,普通⽤户进⾏操作系统会索要超级管理员的密码来获取执⾏权限。
系统开机时⼀般会叫我们选择以何种模式(命令⾏界⾯/图形化界⾯)进⼊(前提是系统装了图形化界⾯),或者系统默认以某种模式进⼊。那么该如何设置默认模式?
CentOS 环境下根⽬录编辑有关⽂件 /etc/inittab ,操作如下:
$ vim /etc/inittab
1. # inittab This file describes how the INIT process should set up
2. # the system in a certain run-level.
3. #
4. # Author: Miquel van Smoorenburg, <miquels@drinkel.>
5. # Modified for RHS Linux by Marc Ewing and Donnie Barnes
6. #
7. # Default runlevel. The runlevels used by RHS are:
8. # 0 - halt (Do NOT set initdefault to this)
9. # 1 - Single user mode
10. # 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
11. # 3 - Full multiuser mode
12. # 4 - unused
13. # 5 - X11
14. # 6 - reboot (Do NOT set initdefault to this)
15. #
16. id:3:initdefault:
linux所有命令都无法使用第 16 ⾏的代码可以 设置默认启动模式。
如果设置为 id:3:initdefault: ,代表默认启动为命令⾏模式;如果设置为 id:5:initdefault: ,则代表默认图形化界⾯模式。修改完毕后重启即可:
# reboot
但是 , 在 测试的 CentOS 7 新版本中,已经发⽣了改变,如下:
$ vim /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
#
这块已经属于额外的内容了,若你想了解更多,请参考我的另⼀篇博客:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论