• 【Linux】inittab系统启动时sysinit含义


    # Startup the system
    ::sysinit:/bin/mount -t proc proc /proc
    ::sysinit:/bin/mount -o remount,rw /
    ::sysinit:/bin/mkdir -p /dev/pts /dev/shm
    ::sysinit:/bin/mount -a
    ::sysinit:/bin/mkdir -p /run/lock/subsys
    ::sysinit:/sbin/swapon -a
    null::sysinit:/bin/ln -sf /proc/self/fd /dev/fd
    null::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin
    null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout
    null::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr
    ::sysinit:/bin/hostname -F /etc/hostname
    # now run any rc scripts
    ::sysinit:/etc/init.d/rcS
    
    # Put a getty on the serial port
    console::respawn:/sbin/getty -L  console 115200 vt100 # GENERIC_SERIAL
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    ::sysinit: 前缀用于指定在系统初始化期间应运行的命令。这些命令通常用于设置系统环境。例如,/bin/mount -t proc proc /proc 是用于将 proc 文件系统挂载到 /proc 目录的命令。 console::respawn:/sbin/getty -L console 115200 vt100 是在串行端口上启动一个 getty 的命令,这是一个用于处理串行端口输入的程序。 ::shutdown:/etc/init.d/rcK 是在系统关闭之前运行的命令。这个命令通常用于执行一些清理工作,如关闭交换空间并卸载文件系统。
    
    以下是一些命令的详细解释:
    /bin/mount -t proc proc /proc:挂载 proc 文件系统到 /proc 目录。proc 文件系统是一个伪文件系统,它提供了系统内核和当前进程的信息。
    /bin/mount -o remount,rw /:重新挂载根文件系统(/)为只读模式。 
    /bin/mkdir -p /dev/pts /dev/shm:创建 /dev/pts 和 /dev/shm 目录。pts 是伪终端设备的目录,shm 是共享内存区域的目录。
    /bin/mount -a:自动挂载所有在 /etc/fstab 文件中定义的文件系统。
    /sbin/swapon -a:启用所有在 /etc/fstab 文件中定义的交换空间。
    /bin/ln -sf /proc/self/fd /dev/fd:创建一个指向 /proc/self/fd 的符号链接 /dev/fd。这是因为在某些系统中,/dev/fd 是一个符号链接,指向 /proc/self/fd。 
    /bin/hostname-F /etc/hostname:设置系统的主机名。 
    /etc/init.d/rcS:运行启动脚本。启动脚本通常包含了启动系统时需要执行的命令。
    /sbin/getty -L console 115200 vt100:在串行端口上启动一个 getty 程序。这个程序负责处理串行端口的输入。
    /etc/init.d/rcK:运行关闭脚本。关闭脚本包含了关闭系统时需要执行的命令。
    /sbin/swapoff-a:关闭所有的交换空间。
    /bin/umount -a -r:卸载所有的文件系统。 这些命令都是在系统启动或关闭时执行的,用于设置和清理系统环境。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    null::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr

    在这个上下文中,“null” 是一个特殊的关键字,用于指示这个命令不需要在系统启动时运行,而是在系统运行过程中根据需要运行。这种命令通常用于设置环境变量或者创建符号链接,这些操作在系统启动时可能还不需要,但是在系统运行过程中可能需要。

    null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout 这个命令的意思是,在系统启动时不运行这个命令,而是在系统运行过程中,当需要创建一个从 /proc/self/fd/1 到 /dev/stdout 的符号链接时,再运行这个命令。

    这种语法是 init 系统的一部分,用于控制系统启动过程中哪些命令应该在哪个阶段运行。在这个脚本中,“null” 关键字用于指示这个命令应该在系统运行过程中根据需要运行,而不是在系统启动时运行。

  • 相关阅读:
    公众号营业执照注销被冻结了,怎么迁移?
    01、spring入门简介
    JVM----GC(垃圾回收)详解
    python相对路径和绝对路径
    Go----方法和函数的区别
    从零开始基于LLM构建智能问答系统的方案
    【INTEL(ALTERA)】Nios II软件开发人员手册中设计位置的错误示例
    【亚马逊云+阿里万网】| 实现网站证书配置和域名解析
    转转品牌升级,不只换了个LOGO
    COCI2021-2022#1 Volontiranje
  • 原文地址:https://blog.csdn.net/qq_21688871/article/details/133648271