zoukankan      html  css  js  c++  java
  • 系统的启动模式(启动级别)的改动---使用upstart启动机制的

    /*********************************************************************
     * Author  : Samson
     * Date    : 06/18/2014
     * Test platform:
     *              Mint 15
     *              GNU bash, version 4.2.45
     * *******************************************************************/

    关于在基于upstart机制下的系统的启动模式(大多数都叫它启动级别)的改动,在Mint中主要有三种方式进行改动,由于upstart模式还是考虑了对system V等老系统的兼容的,所以在/etc/init下有一个名为:rc-sysinit.conf的文件,此文件里对三种改动方法已经进行了说明:
    0)、改动环境变量:env DEFAULT_RUNLEVEL=2  图形界面的一般都是为2  若是须要单用户登录的话,那么此值设置为1就可以;
    1)、创建/etc/inittab文件,并依照老的system V的配置方式进行配置,system V的详细怎样设置,在网上一大把资料,请自寻找并自取了解了;
    2)、在kernel command-line中输入相应的启动模式值,读取这个命令行的地方为文件: /proc/cmdline ,而这个文件的所相应的值一般为 BOOT_IMAGE=/boot/vmlinuz-3.14.× root=UUID=5d5daf1d-cf45-4f1c-b28d-e517a32dcf28 ro quiet splash vt.handoff=7  类似的行,这行相应的是在grub启动选项中进行填入的,能够在系统启动的时候按e键进行配置,仅仅要存在-s或0~6的数值,那么DEFAULT_RUNLEVEL的值将会改变为相应的值,然后会使用telinit  ${DEFAULT_RUNLEVEL}进行相应启动模式的启动;

    关于upstart事件驱动的介绍可參考:

    http://blog.csdn.net/yygydjkthh/article/details/24796755


    主要代码在rc-sysinit.conf中的例如以下代码中体现:
    script
        # Check for default runlevel in /etc/inittab
        if [ -r /etc/inittab ]
        then
            eval "$(sed -nre 's/^[^#][^:]*:([0-6sS]):initdefault:.*/DEFAULT_RUNLEVEL="1";/p' /etc/inittab || true)"
        fi

        # Check kernel command-line for typical arguments
        for ARG in $(cat /proc/cmdline)
        do
            case "${ARG}" in
            -b|emergency)
                # Emergency shell
                [ -n "${FROM_SINGLE_USER_MODE}" ] || sulogin
                ;;
            [0123456sS])
                # Override runlevel
                DEFAULT_RUNLEVEL="${ARG}"
                ;;
            -s|single)
                # Single user mode
                [ -n "${FROM_SINGLE_USER_MODE}" ] || DEFAULT_RUNLEVEL=S
                ;;
            esac
        done

        # Run the system initialisation scripts
        [ -n "${FROM_SINGLE_USER_MODE}" ] || /etc/init.d/rcS

        # Switch into the default runlevel
        telinit "${DEFAULT_RUNLEVEL}"
    end script

  • 相关阅读:
    html单引号,双引号转义
    把文章里边的html标签去掉(去掉文字的样式,显示css设置的样式)
    java缓存适合使用的情况
    Java内存缓存
    springmvc怎么重定向,从一个controller跳到另一个controller
    jquery 获取标签名(tagName)
    jQuery判断checkbox是否选中的3种方法
    判断一组checkbox中是否有被选中的
    在O(N)时间内求解 正数数组中 两个数相加的 最大值
    两种方法求解 正数数组中 两个数相减 的最大值
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/3820484.html
Copyright © 2011-2022 走看看