博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
系统的启动模式(启动级别)的改动---使用upstart启动机制的
阅读量:7157 次
发布时间:2019-06-29

本文共 1639 字,大约阅读时间需要 5 分钟。

/********************************************************************* * 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事件驱动的介绍可參考:

主要代码在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

转载地址:http://sehgl.baihongyu.com/

你可能感兴趣的文章
Spring Cloud搭建微服务架构----前言
查看>>
延时任务怎么搞
查看>>
MSql中的延迟
查看>>
android tools的添加路径设置过程
查看>>
ORACLE基本知识:表分区
查看>>
Windows下Eclipse 安装 android maven插件教程
查看>>
简明vim练级攻略
查看>>
slidingmenu使用说明
查看>>
nginx配置摘要
查看>>
传输音频
查看>>
CentOS6 图形界面(gnome)安装
查看>>
CMakeLists 可以设置的参数
查看>>
Android 6.0 解决Recyclerview 在 Scrollview 中不能高度自适应问题
查看>>
WebView Cache 缓存清除
查看>>
spring boot 源码分析(九) 事件机制 之 BootstrapApplicationListener
查看>>
Android实现号码归属地查询
查看>>
Python 爬虫实现
查看>>
java日期循环
查看>>
我的友情链接
查看>>
HttpClient调用wsdl协议
查看>>