Linux 命令 init 的使用说明

Linux 命令 init 的使用说明

  initLinux 系统操作中不可缺少的程序之一。所谓的 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.nl.mugnet.org>    
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:  

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
#

这块已经属于额外的内容了,若你想了解更多,请参考我的另一篇博客:点击查看

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值