linux 运行等级 init/etc/inittab 0 – 停机(千万不能把initdefault 设置为0) 1 – 单用户模式 2 – 多用户,没有 NFS(和级别3相似,会停止部分服务) 3 – 完全多用户模式 4 – 没有用到 5 – x11(Xwindow) 6 – 重新启动(千万不要把initdefault 设置为6)
一般来说默认启动到命令行只需要将上面文件的 initdefault 改为相应的等级即可。但Ubuntu找不到/etc/inittab 文件,而且运行级别也有差别。 0 – 关闭系统 1 – 单用户模式 2~5 – 完整的多用户模式 6 – 重新启动
也就是说,默认情况下级别2、3、4、5都是一样的,同时系统的默认级别设定也不是在inittab 文件中,而是写在/etc/init/rc-sysinit.conf 文件中。打开此文件,可以找到下面一句: env DEFAULT_RUNLEVEL=2 这表明系统当前默认是进入级别2。 另外,在此文见中还有一段以if [ -r /etc/inittab ] 开始的代码,这里保留了使用inittab 指定系统默认运行级别的功能,也就是说,如果用户手动创建了/etc/inittab ,那么init 将以/etc/inittab 中指定的默认运行级别进行系统的启动。比如说用户希望系统以级别3为默认运行级别,则只需在inittab 文件中加入如下一行: id:3:initdefault: 在经过/etc/init/rc-sysinit.conf 确定运行级别后,init 将进一步运行/etc/init.d/rc ,然后根据级别进入/etc/rc[?].d 启动或关闭相应的服务。(参考 http://my.oschina.net/jackguo/blog/96656 ) 下面是让 Ubuntu 默认启动到命令行的几种方法。 第一种方法查看文件/etc/init/rc-sysinit.conf ,在第14行附近:确认env DEFAULT_RUNLEVEL=2 。2是新装系统默认的,确保不被修改。 编辑文件/etc/init/lightdm.conf ,在第12行附近,原句and runlevel [!06] 改为and runlevel [!026] 。
系统启动过程中会有一个init 进程来拉起许多其他进程(各种系统服务,窗口界面)。在ubuntu上(11.10,12.04是这样,其他版本或其他linux发行版不确定)init 会执行两个目录下的脚本,一个是 /etc/init/ 下的,另一个是/etc/rc?.d/ 下的,问号可能是0~6的其中一个数字,代表运行级别。 在ubuntu上,init 进程首先执行/etc/init/ 目录下的rc-sysinit.conf ,这个文件指明了本次启动的默认运行级别。上面第一步便是确保默认运行级别是2。接下来目录/etc/init 下的其他脚本的执行都会根据不同的运行级别做出不同的动作,比如lightdm 会判断运行级别是否处于1,2,3,4,5中的一个,是则启动lightdm ,不是则不启动lightdm 。这便是上面第二步的意义,修改lightdm.conf ,把2 加入到判断语句,使得lightdm 在运行级别2的时候不要启动。明白了这些,你就可以灵活一点,例如把默认级别设置为3,而把3加入那个判断语句,也可以达到阻止lightdm 启动的效果。完成了/etc/init/ 目录下的启动动作,init 进程会继续执行/etc/rc2.d 目录下的脚本。 重启,即可发现开机后进入到命令行界面,并没有启动图形界面。 如果要进入图形界面,可以是使用命令 sudo init 3 注意,如果使用命令sudo init 2 不行,因为上面我们把它设置为无法启动图形界面了。 也不能使用命令startx ,因为如果使用这个命令会进入到一个界面,但是无法输入用户名和密码,据说这命令有问题,参考 http://forum./viewtopic.php?t=401953 使用命令 sudo /etc/init.d/lightdm start 或者 sudo lightdm restart 也是可以的,只是会有几次跳转到命令行界面,需要手动回到图形界面(ctrl+alt+F7)。 (下面我其实没有碰到,比较第三种方法) 如果输入了登录密码后不能进入图形桌面,仍然回到登录界面,可以按 ctrl+alt+f1 返回命令行,会发现一个.Xauthority 的文件被拒绝写入,改变这个文件的权限 sudo chmod 646 .Xauthority 完成后,再sudo lightdm restart ,进入登录界面,输入密码后正常进入桌面 二者的区别,后者有点类似启动了某个程序,可以在刚开始的命令行界面 ctrl+c 关闭,而 init 3 则不知道怎么关闭。 重新回到默认启动图形界面,只需要将/etc/init/lightdm.conf 的改动恢复即可。 第二种方法sudo vi /etc/default/grub 将其中一行 GRUB_CMDLINE_LINUX_DEFAULT="quiet" 改为 GRUB_CMDLINE_LINUX_DEFAULT="text" 保存后 sudo update-grub 重启后发现进入到命令行界面。此时不能用sudo init 3 启动图形界面,只能使用 sudo /etc/init.d/lightdm start 或者 sudo lightdm restart 第三种方法sudo vi /etc/X11/default-display-manager 里面就一行内容/usr/sbin/gdm 注释掉,加上一行false 重启即可。重启后屏幕上出现 * Stopping Light DM Display Manager [ OK ]
* Starting CUPS printing spooler/server [ OK ] 这个时候其实是位于 ctrl+alt+F7 的,切换到其他模式下即可,例如 ctrl+alt+F1 此时也不能用sudo init 3 启动图形界面,而需要用 sudo /etc/init.d/lightdm start 或者sudo lightdm restart (下面实际当中碰到) 如果输入了登录密码后不能进入图形桌面,仍然回到登录界面,可以按 ctrl+alt+f1 返回命令行,会发现一个.Xauthority 的文件被拒绝写入,改变这个文件的权限 sudo chmod 646 .Xauthority 完成后,再sudo lightdm restart ,进入登录界面,输入密码后正常进入桌面 参考链接 http://blog.sina.com.cn/s/blog_698f90230100xt05.html http://www./662992.html http://forum./viewtopic.php?t=401953 http://my.oschina.net/jackguo/blog/96656
CentOS 7.0CentOS7 不再使用init 托管服务了,改成了systemd ,也不需要/etc/inittab 这个文件。 命令模式 sudo systemctl set-default multi-user.target 图形模式 sudo systemctl set-default graphical.target 更改默认启动后输出示例 rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/multi-user.target' '/etc/systemd/system/default.target' 打开图形界面 sudo init 5 这里使用 startx 也可以,但二者不同的是init 5 会进入登录界面,需要重新输入用户名和密码,此时在terminal 输入sudo init 3 又可回到命令行模式;使用命令startx 直接进入到桌面,但与前者不同的是此时系统的语言变为英文的, 而且在terminal 输入sudo init 3 没有反应,此时可以通过sudo init 1 回到命令行模式,屏幕上会出现一些提示信息,没看懂,按下ctrl+d 等待一会就回到了命令行模式下。 参考链接 http://www./weixin1410783943.html https://blog./400.html
|