• init命令是Linux操作系统中不可缺少的程序之一,init进程是Linux内核引导运行的,是系统中的第一个进程。 语法 init(选项)(参数) 选项 -b:不执行相关脚本而直接进入单用户模式; -s:切换到单用户模式。 参数...

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

    语法

    init(选项)(参数)
    选项

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

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

    实例

    几个常用的命令

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

    运行级别

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

    0 停机(千万不能把initdefault 设置为0)
    1 单用户模式
    2 多用户,没有 NFS(和级别3相似,会停止部分服务)
    3 完全多用户模式
    4 没有用到
    5 x11(Xwindow)
    6 重新启动(千万不要把initdefault 设置为6)
    展开全文
  • Linux中重启的两个命令:reboot和init 6之间的区别 init命令用于改变操作系统的运行级别。 Init 6是重新启动机器。 reboot也是重新启动机器。 那么这两个命令到底有什么区别呢? 对这两个操作使用man命令看到的内容...

    Linux中重启的两个命令:reboot和init 6之间的区别

    init命令用于改变操作系统的运行级别。
    Init 6是重新启动机器。
    reboot也是重新启动机器。
    那么这两个命令到底有什么区别呢?
    对这两个操作使用man命令看到的内容如下:
    "init 6" 基于一系列/etc/inittab文件,并且每个应用都会有一个相应shutdown脚本。
    'init 6' 调用一系列shutdown脚本(/etc/rc0.d/K*)来使系统优雅关机;
    'reboot'并不执行这些过程,reboot更是一个kernel级别的命令,不对应用使用shutdown脚本。 .
    我们应该在通常情况下使用 init 6.
    reboot - reboot performs a sync(1M) operation on the disks, and then a
    multi- user reboot is initiated. See init(1M) for details.
    init 6 Stop the operating system and reboot to the
    state defined by the initdefault entry in
    /etc/inittab.
    在出问题的状况下或强制重启时使用reboot

    展开全文
  • initLinux系统操作中不可缺少的程序之一。  所谓的init进程,它是一个由内核启动的用户级进程。  内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动...


    一. init是Linux系统操作中不可缺少的程序之一。

      所谓的init进程,它是一个由内核启动的用户级进程。

      内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。

      内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。

    二. init一共分为7个级别,这7个级别的所代表的含义如下

    0:停机或者关机(千万不能将initdefault设置为0)

    1:单用户模式,只root用户进行维护

    2:多用户模式,不能使用NFS(Net File System)

    3:完全多用户模式(标准的运行级别)

    4:安全模式

    5:图形化(即图形界面)

    6:重启(千万不要把initdefault设置为6)

    其实,可以通过查看/etc/rc.d/中的rc*.d的文件来对比理解。。
    init 0,对应的系统会运行,/etc/rc.d/rc0.d里指定的程序。我们来看下名称
    [root@localhost  ~]# ls /etc/rc.d/rc0.d 
    K01dnsmasq    K15ksmtuned  K35nmb         K60crond       K74lm_sensors  K83portreserve     K85rpcgssd    K88iscsi     K90network       <span style="padding: 0px; margin: 0px; color: rgb(255, 0, 0);">S00killall</span>
    K10cups       K16ksm       K35smb         K66gpsd        K75netfs       K84NetworkManager  K85rpcidmapd  K88rsyslog   K92ip6tables     <span style="padding: 0px; margin: 0px; color: rgb(255, 0, 0);">S01halt</span>
    K10saslauthd  K20nfs       K36mysqld      K69rpcsvcgssd  K75udev-post   K84wpa_supplicant  K86nfslock    K89iscsid    K92iptables
    K10xfs        K25sshd      K50haldaemon   K70vboxdrv     K76openvpn     K85mdmonitor       K87alsasound  K89netplugd  K98qemu
    K15gpm        K30sendmail  K50netconsole  K74acpid       K83bluetooth   K85messagebus      K87rpcbind    K89rdisc     K99lvm2-monitor

    依照上述红色字体,开机会执行的两个进程是killall和halt,这两个都表示为终止进程。故init 0是用于表示关机的。

    init 1,对应的系统会运行,/etc/rc.d/rc1.d里指定的程序。

    [root@localhost ~] # ls /etc/rc.d/rc1.d
    K01dnsmasq    K15ksmtuned  K35nmb         K60crond       K74lm_sensors   K84NetworkManager  K85rpcidmapd  K88rsyslog   K92ip6tables     <span style="padding: 0px; margin: 0px; color: rgb(255, 0, 0);">S99single</span>
    K10cups       K16ksm       K35smb         K66gpsd        K75netfs        K84wpa_supplicant  K86nfslock    K89iscsid    K92iptables
    K10saslauthd  K20nfs       K36mysqld      K69rpcsvcgssd  K76openvpn      K85mdmonitor       K87alsasound  K89netplugd  K98qemu
    K10xfs        K25sshd      K50haldaemon   K70vboxdrv     K83bluetooth    K85messagebus      K87rpcbind    K89rdisc    <span style="padding: 0px; margin: 0px; color: rgb(255, 0, 0);"> S02lvm2-monitor</span>
    K15gpm        K30sendmail  K50netconsole  K74acpid       K83portreserve  K85rpcgssd         K88iscsi      K90network   <span style="padding: 0px; margin: 0px; color: rgb(255, 0, 0);">S26udev-post</span>

    这个级别启动的服务有三个,udev、lvm相关的和single(单用户模式的服务)。故此级别是单用户模式,只有root能用,不支持其他用户。

    init 2,对应的系统会运行,/etc/rc.d/rc2.d里指定的程序。

    [root@localhost ~ ]# ls /etc/rc.d/rc2.d/
    K01dnsmasq    K20nfs       K36mysqld      K74lm_sensors      K85rpcgssd    K89netplugd      <span style="padding: 0px; margin: 0px; color: rgb(255, 0, 0);">S08iptables</span>    <span style="padding: 0px; margin: 0px; color: rgb(255, 0, 0);">S23NetworkManager  S30vboxdrv    S99local</span>
    K10saslauthd  K25sshd      K50haldaemon   K75netfs           K85rpcidmapd  K89rdisc         S12rsyslog     S24portreserve     S35qemu
    K10xfs        K30sendmail  K50netconsole  K76openvpn         K86nfslock    K90network       S13rpcbind     S25cups            S85gpm
    K15ksmtuned   K35nmb       K66gpsd        K83bluetooth       K88iscsi      S02lvm2-monitor  S15mdmonitor   S26acpid           S90crond
    K16ksm        K35smb       K69rpcsvcgssd  K84wpa_supplicant  K89iscsid     S08ip6tables     S22messagebus  S26udev-post       S99alsasound

    这个级别启动的服务多了,NetworkManager/iptables/acpid/alsa都已经开启,但是nfs,smb,openvpn相关服务没有开启,这个级别不支持nfs。

    init 3 , 对应的系统运行/etc/rc.d/rc3.d

    [root@localhost ~] # ls /etc/rc.d/rc3.d/
    K01dnsmasq    K30sendmail    K74lm_sensors      K89rdisc         S08iptables  S18rpcidmapd       S25cups       S35qemu       S85ksmtuned   S99local
    K10saslauthd  K36mysqld      K76openvpn         K90network       S12rsyslog   S19rpcgssd         S25netfs      S50bluetooth  S90crond
    K10xfs        K50netconsole  K84wpa_supplicant  K99lvm2-monitor  S13iscsi     S22messagebus      S26acpid      S50haldaemon  S91nmb
    K20nfs        K66gpsd        K85mdmonitor       S07iscsid        S13rpcbind   S23NetworkManager  S26udev-post  S84ksm        S91smb
    K25sshd       K69rpcsvcgssd  K89netplugd        S08ip6tables     S14nfslock   S24portreserve     S30vboxdrv    S85gpm        S99alsasound

    这个级别nfs服务是开启的,被成为完全多用户模式。

    init 4

    [root@localhost ~ ]# ls /etc/rc.d/rc4.d/
    K01dnsmasq    K30sendmail    K66gpsd            K85mdmonitor     S07iscsid     S13rpcbind     S23NetworkManager  S26udev-post  S84ksm        S99local
    K10saslauthd  K35nmb         K69rpcsvcgssd      K89netplugd      S08ip6tables  S14nfslock     S24portreserve     S30vboxdrv    S85gpm
    K10xfs        K35smb         K74lm_sensors      K89rdisc         S08iptables   S18rpcidmapd   S25cups            S35qemu       S85ksmtuned
    K20nfs        K36mysqld      K76openvpn         K90network       S12rsyslog    S19rpcgssd     S25netfs           S50bluetooth  S90crond
    K25sshd       K50netconsole  K84wpa_supplicant  K99lvm2-monitor  S13iscsi      S22messagebus  S26acpid           S50haldaemon  S99alsasound

    此模式被称为安全模式。

    init 5

    [root@localhost ~ ]# ls /etc/rc.d/rc5.d/
    K01dnsmasq    K25sshd        K66gpsd         K84wpa_supplicant  K87rpcbind   K90network       S22messagebus      S26udev-post  S84ksm        S99local
    K10saslauthd  K30sendmail    K69rpcsvcgssd   K85mdmonitor       K88iscsi     K99lvm2-monitor  S23NetworkManager  S30vboxdrv    S85ksmtuned
    K10xfs        K36mysqld      K74lm_sensors   K85rpcgssd         K89iscsid    S08ip6tables     S25cups            S35qemu       S91nmb
    K15gpm        K50netconsole  K76openvpn      K85rpcidmapd       K89netplugd  S08iptables      S25netfs           S50bluetooth  S91smb
    K20nfs        K60crond       K83portreserve  K86nfslock         K89rdisc     S12rsyslog       S26acpid           S50haldaemon  S99alsasound

    完全的图形化界面模式

     init 6

    [root@localhost ~ ]# ls /etc/rc.d/rc6.d/
    K01dnsmasq    K15ksmtuned  K35nmb         K60crond       K74lm_sensors  K83portreserve     K85rpcgssd    K88iscsi     K90network       <span style="padding: 0px; margin: 0px; color: rgb(255, 0, 0);">S00killall</span>
    K10cups       K16ksm       K35smb         K66gpsd        K75netfs       K84NetworkManager  K85rpcidmapd  K88rsyslog   K92ip6tables     <span style="padding: 0px; margin: 0px; color: rgb(255, 0, 0);">S01reboot</span>
    K10saslauthd  K20nfs       K36mysqld      K69rpcsvcgssd  K75udev-post   K84wpa_supplicant  K86nfslock    K89iscsid    K92iptables
    K10xfs        K25sshd      K50haldaemon   K70vboxdrv     K76openvpn     K85mdmonitor       K87alsasound  K89netplugd  K98qemu
    K15gpm        K30sendmail  K50netconsole  K74acpid       K83bluetooth   K85messagebus      K87rpcbind    K89rdisc     K99lvm2-monitor

    这个级别里,只有两个服务,一个为killall,一个是reboot,即,关闭现在的系统,重启。故此级别是重启。

    不同的系统版本,可能里面的文件会不同,如果要查看,可以通过ll来看,其实他们都是软连接。


    原文地址:http://m.blog.csdn.net/blog/woshizyq/9798191


    展开全文
  • initLinux系统里的根进程,是系统所有进程的祖先。它的主要作用是根据记录在/etc/inittab里的一个脚本(script)程序产生进 程。这个文件通常用于控制用户的登录模式。Linux系统的有效登录模式有0~9共十种,不过...

    init是Linux系统里的根进程,是系统所有进程的祖先。它的主要作用是根据记录在/etc/inittab里的一个脚本(script)程序产生进 程。这个文件通常用于控制用户的登录模式。Linux系统的有效登录模式有0~9共十种,不过沿用UNIX系统的至多6种的限制,一般只有1到6有效。
    init一般在系统启动时自动运行,也可以由root用户调用。它的作用是切换系统的运行状态。它的命令格式是:init NUM〈回车〉,其中NUM表示1到6的任一数字。
    6种模式中有两种是系统内定的:
    0:停止系统运行。init 0〈回车〉相当于 halt〈回车〉。
    6:重启系统。init 6〈回车〉相当于 reboot〈回车〉。
    其余:
    init 1——进入单用户模式。
    init 2——进入无网络服务的多用户模式 如果你的计算机没有对外提供网络服务,这个模式就跟普通模式一样了。
    init 3或init 4——进入控制台登录的多用户模式.每个用户都要先从黑白屏幕登录之后才可以运行才能startx进入KDE图形界面。
    init 5——进入图形化登录的多用户模式。
    可以通过runlevel 和 who -r 命令来查看当前运行的模式。

    注:整理自网络。

    展开全文
  • Linux init进程详解

    2018-04-05 13:14:32
    一、什么是INIT: initLinux系统操作中不可缺少的程序之一。 所谓的init进程,它是一个由内核启动的用户级进程。 内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就...
    一、什么是INIT:

      init是Linux系统操作中不可缺少的程序之一。

      所谓的init进程,它是一个由内核启动的用户级进程。

      内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。

      内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。

      二、运行级别

      那么,到底什么是运行级呢?

      简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从1到6 ,具有不同的功能。

      不同的运行级定义如下:(可以参考Red Hat Linux 里面的/etc/inittab)

      # 0 - 停机(千万不能把initdefault 设置为0 )

      # 1 - 单用户模式

      # 2 - 多用户,没有 NFS

      # 3 - 完全多用户模式(标准的运行级)

      # 4 - 没有用到

      # 5 - X11 (xwindow)

      # 6 - 重新启动 (千万不要把initdefault 设置为6 )

      这些级别在/etc/inittab 文件里指定。这个文件是init 程序寻找的主要文件,最先运行的服务是放在/etc/rc.d 目录下的文件。在大多数的Linux 发行版本中,启动脚本都是位于 /etc/rc.d/init.d中的。这些脚本被用ln 命令连接到 /etc/rc.d/rcn.d 目录。(这里的n 就是运行级0-6) ,每个不同级别的目录都链接了Init.d中的命令的一部分。

    三、运行级别的配置

      运行级别的配置是在/etc/inittab行内进行的,如下所示:

      12 : 2 : wait : / etc / init.d / rc 2

      第一个字段是一个任意指定的标签;

      第二个字段表示这一行适用于运行那个级别(这里是2);

      第三个字 段表示进入运行级别时,init应该运行第四个字段内的命令一次,而且init应该等待该命令结束。/etc/init.d/rc命令运行启动和终止输入以便进入运行级别2时所需的任何命令。

      第四个字段中的命令执行设置运行级别时的一切“杂活”。它启动已经没有运行的服务,终止不应该再在新运行级别内运行的服务。根据Linux版本的不同,采用的具体命令也不同,而且运行级别的配置也是有差别的。

      init启动时,它会在/etc/inittab内查找一个代码行,这一行指定了默认的运行级别:

      id : 2 : initdefault :

      你可以要求init在启动时,进入非默认运行级别,这是通过为内核指定一个“single”或“emergency” 命令行参数来实现的。比如说,内核命令行参数的指定可通过LILO来执行。这样一来,你就可以选择单用户模式了(即运行级别1)。

      系统正在运行时,telinit命令可更改运行级别。运行级别发生变化时, init 就会从/etc/inittab运行相应的命令。

      四、/etc/inittab中的特殊配置

      /etc/inittab中,有几个特殊的特性,允许init重新激活特殊事件。这些特殊特性都是用第三个字段中的特殊关键字标记出来的。比如:

      1. powerwait

      允许init在电源被切断时,关闭系统。其前提是具有U P S和监视U P S并通知init电源已被切断的软件。

      2. ctrlaltdel

      允许init在用户于控制台键盘上按下C t r l + A l t + D e l组合键时,重新启动系统。注意,如果该系统放在一个公共场所,系统管理员可将C t r l + A l t + D e l组合键配置为别的行为,比如忽略等。

    3. sysinit

      系统启动时准备运行的命令。比如说,这个命令将清除/tmp。

      上面列出的特殊关键字尚不完整。其他的关键字及其使用详情,可参考你的inittab手册页。

      五、在单用户模式下引导

      一个重要的运行级别就是单用户模式(运行级别1),该模式中,只有一个系统管理员使用特定的机器,而且尽可能少地运行系统服务,其中包含登录。单用户模式对少数管理任务(比如在/usr分区上运行fsck)而言,是很有必要的,因为这需要卸载分区,但这是不可能的,除非所有的服务系统已被杀死。

      一个正在运行的系统可以进入单用户模式,具体做法是利用init,请求运行级别1。内核启动时,在内核命令行指定single或emergency关键字,就可进入运行级别1了。内核同时也为init指定命令行, init从关键字得知自己不应该采用默认的运行级别(内核命令行的输入方式和你启动系统的方式有关)。

      有时,以单用户模式进行启动是必要的,这样一来,用户在装入分区之前,或至少在装入分散的/usr分区之前,能手工运行fsck(在分散的文件系统上,任何活动都可能使其更为分散,所以应该尽可能地运行fsck)。

      如果自动化的fsck在启动时失败了,启动脚本init的运行将自动进入单用户模式。这样做是为了防止系统使用不连贯的文件系统,这个文件系统是f s c k不能自动修复的。文件系统不连贯的现象极为少见,而且通常会导致硬盘的不连贯或实验性的内核释放,但最好能做到防患于未然。

      由于安全上的考虑,在单用户模式下,启动外壳脚本之前,配置得当的系统会要求用户提供root密码。否则,它会简单地为L I L O输入合适的一行代码,以r o o t的身份登录(当然,如果/etc/passwd已经由于文件系统的问题而不连贯了,就不适合这里的原则了,为对付这种情况,你最好随时准备一张启动盘)。

      不同的运行级有不同的用处,也应该根据自己的不同情形来设置。

      例如,如果丢失了root口令,那么可以让机器启动进入单用户状态。在启动后的 lilo 提示符下输入:

      init=/bin/sh rw 使机器进入运行级1 ,并把 root 文件系统挂为读写。他会跳过所有系统认证,让你可以使用passwd 程序来改变root口令,然后启动到一个新的运行级。

      运行级别的配置是在/etc/inittab行内进行的,如下所示:

      12 : 2 : wait : / etc / init.d / rc 2

      第一个字段是一个任意指定的标签;

      第二个字段表示这一行适用于运行那个级别(这里是2);

      第三个字 段表示进入运行级别时,init应该运行第四个字段内的命令一次,而且init应该等待该命令结束。/etc/init.d/rc命令运行启动和终止输入以便进入运行级别2时所需的任何命令。

      第四个字段中的命令执行设置运行级别时的一切“杂活”。它启动已经没有运行的服务,终止不应该再在新运行级别内运行的服务。根据Linux版本的不同,采用的具体命令也不同,而且运行级别的配置也是有差别的。

      init启动时,它会在/etc/inittab内查找一个代码行,这一行指定了默认的运行级别:

      id : 2 : initdefault :

      你可以要求init在启动时,进入非默认运行级别,这是通过为内核指定一个“single”或“emergency” 命令行参数来实现的。比如说,内核命令行参数的指定可通过LILO来执行。这样一来,你就可以选择单用户模式了(即运行级别1)。

      系统正在运行时,telinit命令可更改运行级别。运行级别发生变化时, init 就会从/etc/inittab运行相应的命令。

      四、/etc/inittab中的特殊配置

      /etc/inittab中,有几个特殊的特性,允许init重新激活特殊事件。这些特殊特性都是用第三个字段中的特殊关键字标记出来的。比如:

      1. powerwait

      允许init在电源被切断时,关闭系统。其前提是具有U P S和监视U P S并通知init电源已被切断的软件。

      2. ctrlaltdel

      允许init在用户于控制台键盘上按下C t r l + A l t + D e l组合键时,重新启动系统。注意,如果该系统放在一个公共场所,系统管理员可将C t r l + A l t + D e l组合键配置为别的行为,比如忽略等。

    3. sysinit

      系统启动时准备运行的命令。比如说,这个命令将清除/tmp。

      上面列出的特殊关键字尚不完整。其他的关键字及其使用详情,可参考你的inittab手册页。

      五、在单用户模式下引导

      一个重要的运行级别就是单用户模式(运行级别1),该模式中,只有一个系统管理员使用特定的机器,而且尽可能少地运行系统服务,其中包含登录。单用户模式对少数管理任务(比如在/usr分区上运行fsck)而言,是很有必要的,因为这需要卸载分区,但这是不可能的,除非所有的服务系统已被杀死。

      一个正在运行的系统可以进入单用户模式,具体做法是利用init,请求运行级别1。内核启动时,在内核命令行指定single或emergency关键字,就可进入运行级别1了。内核同时也为init指定命令行, init从关键字得知自己不应该采用默认的运行级别(内核命令行的输入方式和你启动系统的方式有关)。

      有时,以单用户模式进行启动是必要的,这样一来,用户在装入分区之前,或至少在装入分散的/usr分区之前,能手工运行fsck(在分散的文件系统上,任何活动都可能使其更为分散,所以应该尽可能地运行fsck)。

      如果自动化的fsck在启动时失败了,启动脚本init的运行将自动进入单用户模式。这样做是为了防止系统使用不连贯的文件系统,这个文件系统是f s c k不能自动修复的。文件系统不连贯的现象极为少见,而且通常会导致硬盘的不连贯或实验性的内核释放,但最好能做到防患于未然。

      由于安全上的考虑,在单用户模式下,启动外壳脚本之前,配置得当的系统会要求用户提供root密码。否则,它会简单地为L I L O输入合适的一行代码,以r o o t的身份登录(当然,如果/etc/passwd已经由于文件系统的问题而不连贯了,就不适合这里的原则了,为对付这种情况,你最好随时准备一张启动盘)。

      不同的运行级有不同的用处,也应该根据自己的不同情形来设置。

      例如,如果丢失了root口令,那么可以让机器启动进入单用户状态。在启动后的 lilo 提示符下输入:

      init=/bin/sh rw 使机器进入运行级1 ,并把 root 文件系统挂为读写。他会跳过所有系统认证,让你可以使用passwd 程序来改变root口令,然后启动到一个新的运行级。

      运行级别的配置是在/etc/inittab行内进行的,如下所示:

      12 : 2 : wait : / etc / init.d / rc 2

      第一个字段是一个任意指定的标签;

      第二个字段表示这一行适用于运行那个级别(这里是2);

      第三个字 段表示进入运行级别时,init应该运行第四个字段内的命令一次,而且init应该等待该命令结束。/etc/init.d/rc命令运行启动和终止输入以便进入运行级别2时所需的任何命令。

      第四个字段中的命令执行设置运行级别时的一切“杂活”。它启动已经没有运行的服务,终止不应该再在新运行级别内运行的服务。根据Linux版本的不同,采用的具体命令也不同,而且运行级别的配置也是有差别的。

      init启动时,它会在/etc/inittab内查找一个代码行,这一行指定了默认的运行级别:

      id : 2 : initdefault :

      你可以要求init在启动时,进入非默认运行级别,这是通过为内核指定一个“single”或“emergency” 命令行参数来实现的。比如说,内核命令行参数的指定可通过LILO来执行。这样一来,你就可以选择单用户模式了(即运行级别1)。

      系统正在运行时,telinit命令可更改运行级别。运行级别发生变化时, init 就会从/etc/inittab运行相应的命令。

      四、/etc/inittab中的特殊配置

      /etc/inittab中,有几个特殊的特性,允许init重新激活特殊事件。这些特殊特性都是用第三个字段中的特殊关键字标记出来的。比如:

      1. powerwait

      允许init在电源被切断时,关闭系统。其前提是具有U P S和监视U P S并通知init电源已被切断的软件。

      2. ctrlaltdel

      允许init在用户于控制台键盘上按下C t r l + A l t + D e l组合键时,重新启动系统。注意,如果该系统放在一个公共场所,系统管理员可将C t r l + A l t + D e l组合键配置为别的行为,比如忽略等。

    3. sysinit

      系统启动时准备运行的命令。比如说,这个命令将清除/tmp。

      上面列出的特殊关键字尚不完整。其他的关键字及其使用详情,可参考你的inittab手册页。

      五、在单用户模式下引导

      一个重要的运行级别就是单用户模式(运行级别1),该模式中,只有一个系统管理员使用特定的机器,而且尽可能少地运行系统服务,其中包含登录。单用户模式对少数管理任务(比如在/usr分区上运行fsck)而言,是很有必要的,因为这需要卸载分区,但这是不可能的,除非所有的服务系统已被杀死。

      一个正在运行的系统可以进入单用户模式,具体做法是利用init,请求运行级别1。内核启动时,在内核命令行指定single或emergency关键字,就可进入运行级别1了。内核同时也为init指定命令行, init从关键字得知自己不应该采用默认的运行级别(内核命令行的输入方式和你启动系统的方式有关)。

      有时,以单用户模式进行启动是必要的,这样一来,用户在装入分区之前,或至少在装入分散的/usr分区之前,能手工运行fsck(在分散的文件系统上,任何活动都可能使其更为分散,所以应该尽可能地运行fsck)。

      如果自动化的fsck在启动时失败了,启动脚本init的运行将自动进入单用户模式。这样做是为了防止系统使用不连贯的文件系统,这个文件系统是f s c k不能自动修复的。文件系统不连贯的现象极为少见,而且通常会导致硬盘的不连贯或实验性的内核释放,但最好能做到防患于未然。

      由于安全上的考虑,在单用户模式下,启动外壳脚本之前,配置得当的系统会要求用户提供root密码。否则,它会简单地为L I L O输入合适的一行代码,以r o o t的身份登录(当然,如果/etc/passwd已经由于文件系统的问题而不连贯了,就不适合这里的原则了,为对付这种情况,你最好随时准备一张启动盘)。

      不同的运行级有不同的用处,也应该根据自己的不同情形来设置。

      例如,如果丢失了root口令,那么可以让机器启动进入单用户状态。在启动后的 lilo 提示符下输入:

      init=/bin/sh rw 使机器进入运行级1 ,并把 root 文件系统挂为读写。他会跳过所有系统认证,让你可以使用passwd 程序来改变root口令,然后启动到一个新的运行级。

    展开全文
  • Linuxinit命令

    2018-04-24 10:27:11
    init+数字所代表的命令:0:停机或者关机(千万不能将initdefault设置为0)1:单用户模式,只root用户进行维护2:多用户模式,不能使用NFS(Net File System)3:完全多用户模式(标准的运行级别)4:安全模式5:图形...
  • 在解释完linux/include/linux/compiler.h后,回到本来的初衷linux/include/linux/init.h。在此贴上代码: 1 #ifndef _LINUX_INIT_H 2 #define _LINUX_INIT_H 3 4 #include <linux/compiler.h> ...
  • 0 表示关机 1 表示单用户模式 2 表示多用户模式 3 表示切换到命令行模式 服务一般处于这种模式 4 表示未被使用的模式 5 表示切换到桌面模式 6 表示重启...
  • init的值改成3(推荐) # 0 - 停机(千万不能把initdefault 设置为0 ) # 1 - 单用户模式 # 2 - 多用户,没有 NFS # 3 - 完全多用户模式(标准的运行级) # 4 - 没有用到 # 5 - X11 (xwindow) # 6 - 重新启动 ...
  • Linux中重启的两个命令:reboot和init 6之间的区别 init命令用于改变操作系统的运行级别。 Init 6是重新启动机器。 reboot也是重新启动机器。 那么这两个命令到底有什么区别呢? 对这两个操作使用man命令看到的内容...
  • Linux init程序分析

    2012-04-01 22:41:02
    Linux使用了init进程来对组成Linux的服务和应用程序进行初始化。  当 init 进程启动时(使用传统的sysvinit版本),它会打开一个名为 /etc/inittab 的文件。这个文件是 init 的配置文件,定义了如何对系统进行初始...
  • init.d,rc.d详解 Linux运行时详解 Linux 启动时需要哪些步骤呢?本文将详细描述不同的运行级在启动中的作用。 对于那些在DOS/Win9x/NT 平台下的高级用户而言,Linux 似乎是一个怪物。没有config.sys ,没有 ...
  • initLinux系统操作中不可缺少的程序之一。  所谓的init进程,它是一个由内核启动的用户级进程。  内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个...
  • Linuxinit.d目录详解

    2016-09-06 15:53:32
    /etc/init.d 是 /etc/rc.d/init.d 的软链接(soft link)。可以通过 ll 命令查看,如下: init.d指的是/etc/rc.d/init.d目录。 本文包括3部分内容 1、 Linux的引导过程 2、 运行级别 3、 /etc/rc.d/ 与/etc/...
  • Linux init详解

    2019-05-30 20:25:22
    一、init模块 一般来说,Linux程序只能用另一个Linux程序启动。例如,登录Linux终端程序Mingetty。   但终端程序又由谁启动呢?在计算机上启动Linux时,内核装入并启动init程序。然后init程序装载硬盘和启动终端...
  • (一)System V init 首先我们来讨论PC上运行Linux系统,它启动后从BIOS开始,进入bootloader,有bootloader加载内核,进入...Linux如果仅仅将内核运行起来,实际上对用户来说没有任何可操作性,所以需要init进程
  • Linux进入单用户模式有时候配置linux的过程中,因为一些误操作导致系统初始化时堵塞或挂起而无法进入系统,原因往往是因为配置文件设置错误,部分文件被...在此模式下,Linux以最小化模式运行,也不能进行远程登录...
  • 有很多小伙伴们不知道init命令的使用方法,还有些小伙伴不清楚linux系统的切换图形化和命令行等模式的方法。通过简单的init命令可以轻松实现哦。
1 2 3 4 5 ... 20
收藏数 311,243
精华内容 124,497
热门标签