zoukankan      html  css  js  c++  java
  • ubuntu修改runlevel

    Ubuntu的默认开机的runlevel是2,可以用runlevel来查看当前的默认运行级别。 
    debian系(ubuntu是基于debian)的Linux一直是用runlevel 2来默认启动,并且runlevel定义也与redhat有区别。 
    debian的runlevel级别定义如下: 

    0 - Halt 
    1 - Single 
    2 - Full multi-user with display manager (GUI) 
    3 - Full multi-user with display manager (GUI) 
    4 - Full multi-user with display manager (GUI) 
    5 - Full multi-user with display manager (GUI) 
    6 - Reboot

    可以发现2~5级是没有任何区别的。 
    ######而redhat的runlevel级别定义如下: 
    ######0 - Halt 
    ######1 - Single 
    ######2 - Not used/User definable 
    ######3 - Full multi-user NO display manager 
    ######4 - Not used/User definable 
    ######5 - Full multi-user with display manager (GUI) 
    ######6 - Reboot

    对应的配置文件夹如下: 
    /etc/rc0.d Run level 0 
    /etc/rc1.d Run level 1 
    /etc/rc2.d Run level 2 
    /etc/rc3.d Run level 3 
    /etc/rc4.d Run level 4 
    /etc/rc5.d Run level 5 
    /etc/rc6.d Run level 6 
    这里的runlevel3-5都是进入图形界面。这与其他的linux发行版不太一致,通常runlevel 3是Multi user mode,即直接登录到字符界面;而runlevel 5是Multi user mode with GUI,即登录到图形界面。 
    现在把runlevel3改为Multi user mode需要如下步骤: 
    一、删除gdm的启动项 
    找到/etc/rc3.d中的gdm项,把它删除,如果想恢复,可以重新建立一个到/etc/init.d中的gdm链接。 
    二、修改默认的runlevel 
    如果暂时修改,可以使用telinit N,这里的N可以是runlevel的代码[0-6]。如果想长期修改,可以在/etc/下建立inittab文件(这个文件在其他发行版中是存在的,而在Debian及其衍生版中是没有的)。文件内容如下 
    id:3:initdefault: 
    注意最后的冒号,这样就说明启动时默认为runlevel 3。 
    sudo reboot试试看是不是到了文本界面下。 
    参考文献: 
    http://www.linuxdiyf.com/viewarticle.php?id=92001 
    http://www.debianadmin.com/debian-and-ubuntu-linux-run-levels.html 

     

    上面的步骤,我们再Ubuntu 8.04中执行时可以行的通的,但是在Ubuntu 10.04中就不行了,10.04对对系统进行了很多的改进。

    禁止Ubuntu 10.04从桌面启动。

    查看gdm启动的配置文件:

    cat  /etc/init/gdm.conf

    start on (filesystem
    and started dbus
    and (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1
    or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
    or stopped udevtrigger))

    stop on runlevel [016] 

    可见,一旦发生文件系统初始化,DBUS总线启动和发生graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1 or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1 or stopped udevtrigger 这里面的任何一个事件,GDM就会被启动,只在运行级别在016的时候,GDM不启动。

    所以,事件也就明了了、要在upstart层面干掉gdm,把上面的启动相关事件注释掉,改写下就行了

    start on (filesystem
    and started dbus
    and (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1
    or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
    or stopped udevtrigger)
    and runlevel [345])
    stop on runlevel [0126]
     

    剩下,重启就OK了!

  • 相关阅读:
    葡萄城报表介绍:数据报表的七个原则
    while(scanf("%d",&n)!=EOF)
    不容易系列之(3)—— LELE的RPG难题
    错排公式
    _​_​i​n​t​6​4​ ​与​l​o​n​g​ ​l​o​n​g​ ​i​n​t
    杭电ACM 2046 阿牛的EOF牛肉串
    C++Builder 中使用 __int64 整数的问题
    折线分平面——杭电2050
    复合梯形公式与复合辛普森公式求积分
    两套蓝桥杯热身题
  • 原文地址:https://www.cnblogs.com/kakafra/p/2686062.html
Copyright © 2011-2022 走看看