• Linux根文件系统:/etc/inittab文件分析


    1. /etc/inittab文件的作用

    Linux内核启动完成后,内核通过启动第一个用户进程(init进程)来启动其他用户记的进程或服务,init进程是Linux系统中所有进程的父进程。

    init进程将解析inittab文件,运行操作系统的配置脚本,对Linux系统进行初始化。

    2. /etc/inittab文件的格式分析

    inittab文件是一个不可执行的文本文件,它被按照固定的格式书写,以供init进程识别。inittab的每一行都是一个登记项,每个登记项的结构都相同,具体如下:

    identifier :  run_level  :  action  :  process
    (1)identifier  
    identifier登记项标识符,最多为4个字符。用于惟一地标识/etc/inittab文件中的每一个登记项。

    (2)run_level  

    run_level系统运行级,用于指定相应的登记项在哪一个运行级中被处理。如果该字段为空,那么相应的登记项将适用于所有的运行级。在该字段中,可以同时指定一个或多个运行级,其中各运行级分别以数字0.1.2.3.4.5.6表示,且无需对其进行分隔。

    runlevel   0             

    让init关闭所有进程并终止系统。

    runlevel   1

    用来将系统转到单用户模式,单用户模式只能有系统管理员进入,在该模式下处理那些在有登录用户的情况下不能进行更改的文件,改runlevel的编号1也可以用S代替。

    runlevel   2

    允许系统进入多用户的模式,但并不支持文件共享,这种模式很少应用。

    runlevel   3

    最常用的运行模式,主要用来提供真正的多用户模式,也是多数服务器的缺省模式。

    runlevel   4

    一般不被系统使用,用户可以设计自己的系统状态并将其应用到runlevel。

    runlevel   5

    将系统初始化为专用的X Window终端。对功能强大的Linux系统来说,这并不是好的选择,但用户如果需要这样,也可以通过在runlevel启动来实现该方案。

    runlevel   6

    关闭所有运行的进程并重新启动系统。

    (3)action

    action字段描述其后的process的运行方式。常用的action字段如下:

    respawn

    init应该监视这个进程,即使其结束后也应该被重新启动。

    wait

    init应该运行这个进程一次,并等待其结束后再进行下一步操作。

    once

    init只运行一次该进程。

    boot

    系统启动时运行该进程。

    bootwait

    在系统启动时运行,init等待进程完成。

    ctrlaltdel

    当Ctrl+Alt+Del三个键同时按下时运行,把SIGINT信号发送给init。

    sysinit

    在运行boot或bootwait进程之前运行。

    powerfail

    当init收到SIGPWR信号时运行。

    powerokwait

    当收到SIGPWD信号且/etc/文件中的电源状态包含OK时运行。

    powerwait

    当收到SIGPWD信号,并且init等待进程结束时运行。

    (4)process

    process字段,表示所要执行的shell命令。任何合法的shell语法均适用于该字段。

    3. 举例

    简易的inittab文件,示例如下:

     

    #first:run the system script file
    ::sysinit:/etc/init.d/rcS         #系统开机或重新启动,执行rcS文件
    ::askfirst:-/bin/login   #系统启动后,运行登录程序
    ::ctrlaltdel:-/sbin/reboot   #按下组合键“ctrl+alt+del”,重启Linux系统


    #umount all filesystem
    ::shutdown:/bin/umount -a -r   #系统关机时,卸载所有文件系统


    #restart init process
    ::restart:/sbin/init                    #重启init进程
  • 相关阅读:
    零食里的营养成分表百分比什么意思
    ROS公司出了一个新需求,pppoeclient拨号失败的时候,同时ippool要更新相应的地址池给用户pptp使用
    据说很不错的无线厂家aruba和ubnt
    Android开发实现NFC刷卡读取的两种方式
    高级 NFC 概览
    Android开发之深入理解NFC(一)
    搭建codeserver
    基于主机的卡模拟概览
    termux备份发行版prootdistro
    浅谈Android开发中的NFC功能
  • 原文地址:https://www.cnblogs.com/linfeng-learning/p/9285543.html
Copyright © 2020-2023  润新知