对于12.04的ubuntu桌面系统,如果想在开机的时候直接进入字符界面,那可以:

编辑文件 /etc/init/lightdm.conf,在第12行附近,原句“ and runlevel [!06]” 改为“ and runlevel [!026]”即可,之后如果想切换到图形界面,那再执行:startx 就可以了!

在ubuntu10.04版本一下的系统中:
 
方法:
 
        sudo vim /etc/default/grub
        找到这一行:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
        改为:GRUB_CMDLINE_LINUX_DEFAULT="text "或者"quiet splash text"
        保存后sudo update-grub 重启即可。
       
note:
quiet的意思是内核启动时候简化提示信息 
    splash的意思是启动的时候使用图形化的进度条代替init的字符输出过程 
===========================================================================================
在ubuntu10.04以上版本中:
方法1:
        Ubuntu安装后默认的run level为2 也就是默认为图形界面启动
 
       Ubuntu之所以能直接启动到图形界面,是由于运行gdm所致。所以,只要把gdm的启动脚本禁用就可以了,方法就是把文件名的第一个字母S改成K:
       cd /etc/rc2.d
        sudo mv S30gdm K30gdm
note:此方法不适用于11.10
 
方法2:
       ubuntu兼容inittab,所以新建一个/etc/inittab文件
       输入:
         id:3:initdefault:
         进入到/etc/rc3.d/中,看看gdm的启动脚本文件名:
         ls -l *gdm
         如果是以S打头的,把文件名改成以K打头

一、前言

无论你想要在ubuntu 12.04(11.10适用)开机启动图形程序,或者非图形程序,相信这篇文章能帮上大忙。

我将根据我的需求讲解我的做法,并解释为什么这么做。完了以后,各位看官根据自己的需求不加修改或稍加修改即可适用。我这边,总得来说,需求是做一个RDP瘦客户端,在一个板子上装上ubuntu 12.04,然后要这个系统启动后能立即弹出RDPclient登录框,而不是进入ubuntu的图形桌面。

二,三部分讲解我是怎么做的,四部分总结设置程序为开机启动的方法,五部分主要针对需要把图形界面程序弄成开机启动的同学,讲解startx。

第六部分为后来补充的:如何关闭ubuntu的启动时载入画面(“loading screen”)。

二、阻止默认图形桌面启动

ubuntu 12.04默认的开机会进入一个图形界面,用命令pstree可以看到图形界面所在的进程树:

首先要做的,就是阻止这个lightdm的进程开机启动。 做法:

一、查看文件/etc/init/rc-sysinit.conf,在第14行附近:确认“env DEFAULT_RUNLEVEL=2”。2是新装系统默认的,确保不被修改。

二、编辑文件 /etc/init/lightdm.conf,在第12行附近,原句“ and runlevel [!06]” 改为“ and runlevel [!026]”。

解释:linux系统都有一个运行级别(runlevel)的概念,不同的运行级别配置将导致系统的启动过程有很大差异,比如当配置 runlevel 为 1 是,是不进入图形界面的。系统启动过程中会有一个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目录下的脚本。

三、设置自己的程序为开机启动

阻止了lightdm的启动之后,还要做的就是把我的RDPClient设置为开机启动。做法:

一、在目录/usr/bin下,有个文件startx,在当前目录复制出一份来,命名为mystartx(cp startx mystartx)。编辑mystartx,在文件末尾有一行“xinit "$client" $clientargs -- "$server" $display $serverargs”,在这一行的前面加入一行"client="/root//myRdpClient/myRdpClient.py"。

二、编辑文件/etc/rc.local,在"exit 0"前添加一行:/usr/bin/mystartx。

解释:第一步里,我制作了一个启动RDPClient的脚本,第二步里,我把这个脚本设置为开机启动。制作RDPClient或其他图形应用程序的启动脚本请看本文的第五部分,第四部分讲解开机启动的方法和注意事项。

四、添加开机启动程序的方法及其注意事项

对于开机启动程序,需要关注4个地方(排序有分先后):1.目录 /etc/init/ 下的所有conf都会被init进程首先执行。2.运行级别为2的时候,目录 /etc/rc2.d/ 下的所有脚本会其次执行,其他运行级别雷同。3.文件/etc/rc.local里的命令会得到执行。4.在文件/etc/crontab里面配置为@reboot的命令会得到执行。
以下分别讲解每个地方该怎么做。

1.在/etc/init/目录下添加开机启动程序的方法。该目录下新建文件myrdpclient.conf。将下面的内容拷贝至文件保存即可。

start on login-session-start

script

/usr/bin/mystartx
end script

这样init进程就会启动的时候执行/usr/bin/mystartx。之前我解释运行级别(runlevel)的时候,说这个目录下的是脚本,是不想在那个地方废话。其实,这个目录下的 .conf 文件是供init进程读取的配置文件,每个配置文件的内容包含两个内容,一是一段脚本在告诉init要启动哪个程序,即指定一个job,或者说任务;二是一些标签(如“start on”)表明这个程序在什么时候启停。首先被读取执行的是rc-sysinit.conf。关于具体该如何写一个conf文件来让init在适当的时候运行某个程序请自行搜索,我给出个这个配置是个非常简单的配置,如果你需求不多的话,把/usr/bin/mystartx 替换为你的程序就够了。

2.在/etc/rc2.d目录下添加开机启动程序的方法。执行命令:

ln -s /usr/bin/mystartx  ./S99mystartx

这个命令将会该目录下建立一个指向/usr/bin/mystartx 的链接,这样init在启动时就会执行这个链接指向的命令。那个S99打头的命名规则,我其实不清楚其意义是什么,大约是在标明启动优先级。总之,你只需要将/usr/bin/mystartx替换为你想要执行的命令(你的程序),同时链接的名字以"S99"为前缀即可。

3.在/etc/rc.local文件里添加启动程序,在“exit 0”之前写上你的命令就可以了,我正是这么做的。

4.在文件/etc/crontab里添加开机启动程序,编辑该文件,在文件末尾添加一行:

@reboot   root  /usr/bin/mystartx

这样你的程序会被一个叫 cron 的例程拉起(而不是 init ),实际上,是 init 在启动过程中启动啦 cron 例程,而 cron 例程通常在系统中做一些定时作业,通过配置也可以让 cron 在启动时做一些作业。

所以,如果你要添加自己的开机启动程序,以上四个地方都可以,其中要大家注意的几点:

一、前两种方法可能是不稳妥的,因为这两个阶段是系统启动阶段,你添加的程序若对系统某些服务有依赖,将导致你的程序出现错误,比如我的RDPclient会出现段错误。

二、第三种方法,添加到/etc/rc.local里面,是网上出现最多的答案,这也是我采用的方法。。事实上,rc.local是系统特地为用户提供的一个添加开机启动程序的接口。需要注意的是,并非每个运行级别都会运行rc.local,在ubuntu里只有2,3,4,5运行级别会执行,所以如果运行级别设置不对的话,你写在rc.local里的命令可能就不能如期执行了。如果你对rc.local如何被执行感兴趣的话读下面。实际上运行rc.local是rc2.d目录下所有脚本中的最后一个脚本。接下来证明这点,可以在rc2.d目录下执行命令:ls -l:

S99rc.local -> ../init/rc.local

可以看到,rc2.d目录下的S99rc.local是一个到 /etc/init.d/rc.local 的链接,运行 S99rc.local 就是在运行 /etc/init.d/rc.local ,而打开这个文件发现里面的注释:

# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Run /etc/rc.local if it exist

实际上,就是在运行 /etc/rc.local 。所以,执行rc2.d目录下的所有脚本,最后一步,就是执行 /etc/rc.local 。其中的注释同样表明了只有2、3、4、5运行级别会执行rc.local,这是因为,只有在2、3、4、5对应的 /etc/rc?.d 目录才有运行 rc.local 的链接。

五、制作图形应用程序启动脚本

对于要开机启动非图形界面的同学来说,事情是非常简单的,在rc.local里添加你的命令即可(或者使用第四部分的其他方法)。之前的阻止lightdm启动你都不需要做,做了也无妨。至于运行级别,你没动过的话应该是2,是ok的。

对于要启动图形化界面的同学,要知道为什么我在startx里面添加一行,设置为开机启动,同时屏蔽lightdm的启动,就可以达到目的,可能还需要进一步的说明。

在linux里,要运行图形界面,需要同时有 X server(或者叫X11 server,"11"是当前的版本号), 和X client,这是 x windows 工作的模式(据说以后会改成wayland什么的,那是后话)。X server在目录 /etc/X11 下,X server启动后的进程名字叫 Xorg ,如果你的系统启动了图形桌面。那么运行命令 pstree 一定可以看到Xorg,正如我在第一部分的贴图里显示,在那里,Xorg 是被 lightdm 拉起来的。

所以,如果ubuntu系统要跑图形程序,不管是它的默认图形桌面lightdm,还是我的RDPClient,都必须先启动 X server(Xorg),再启动图形程序作为X client。没有修改过的ubuntu的图形桌面就是这样启动的,从图中你可以看到它先启动了Xorg,再启动了自己的一大堆metacity什么的。那么,我现在阻止了lightdm的启动,要运行RDPCLient,也同样要分两步:一、启动X server,二、启动RDPClient(作为X client)。

这看起来真难,因为我其实也不知道如何启动X server。但是在 /usr/bin 下有一个脚本叫 startx 。这个脚本是个历史遗留脚本,在过去的ubuntu,或者现在某些其发行版本linux,是这个脚本负责启动默认的图形桌面的。它会做两件事,一、启动X11server,二,启动图形桌面作为 X client。我可以拿这个脚本稍作修改,替换掉其中的图形桌面为我的RDPClient就可以了,具体做法在第二部分。

为什么我不修改lightdm.conf来达到目的?lightdm也是做了两件事,不是也可以替换它的X client为我的X client就可以了么?也许这样是可以的,但是,lightdm.conf那个脚本,哥们儿,你去看看吧,我反正下不了手。反观startx,startx的启动逻辑是非常清晰的,它通过执行了一个 xinit 命令来同时启动X server 和 X client,建议你使用命令“man xinit” 查看xinit的相关内容。修改startx来达到目的比较容易,这就是为什么我不修改lightdm。

总结,阻止lightdm启动默认桌面,通过修改startx来制作一个脚本mystartx以启动X server和我的RDPClient,把mystartx搞成开机启动。这是这样!

六、关闭Ubuntu的载入画面

ubuntu启动时,会有一个ubuntu字样出现在屏幕,文字下方有闪烁的点,这时按ESC可以在动画和文字界面之间切换。这一步骤不属于lightdm,而是一个叫 plymouth 的进程在起作用。实际上,plymouth的意义就在于,在开机到图形桌面 (lightdm)起来这段时间里展示出一个动画,从而提高用户体验。

屏蔽的方法:

一、编辑 /etc/default/grub 文件,原文11行附近:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

去掉”splash“,改后:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

二、执行命令:

sudu updat-grub

重启,即可看到,不再有载入画面出现了。

转载于:https://www.cnblogs.com/subo_peng/p/5238790.html

ubuntu 12.04 桌面版关闭图形界面相关推荐

  1. 在Ubuntu 12.04 桌面上设置启动器(快捷方式)

    在Ubuntu 12.04 桌面上设置启动器(快捷方式)过程讲解: 如下图所示,Eclipse 和 SQLDeveloper 都可以直接双击打开,这些应用程序的启动器都在 /usr/share/app ...

  2. 【转】ubuntu 12.04 LTS将关闭最大化最小化移动到右上角

    原文网址:http://www.4byte.cn/learning/114801.html ubuntu 12.04 LTS将关闭最大化最小化移动到右上角 还是按下"ALT +F2" ...

  3. 解决ubuntu 18.04(桌面版)搜狗输入法不能正常使用的问题

    解决ubuntu 18.04(桌面版)搜狗输入法不能正常使用的问题 参考文章: (1)解决ubuntu 18.04(桌面版)搜狗输入法不能正常使用的问题 (2)https://www.cnblogs. ...

  4. Win10 下安装Ubuntu 21.04桌面版 双系统 并设置win10为默认启动系统 详细教程

    文章目录 〇.写在前面 〇 - Plus:如何进入BIOS 〇 - Plus - Plus:U盘启动快捷键 一.磁盘分区:Win10划分未分配空间 二.下载Ubuntu 21.04镜像 三.安装U盘启 ...

  5. 如何在 Ubuntu 12.04 Server 中安装图形用户界面

    From: http://blog.163.com/crazy20070501@126/blog/static/12865946520128301144531/ 使用ubuntu server安装la ...

  6. ubuntu 18.04 桌面版应用、美化、配置备忘录[更新中]

    文章目录 桌面美化 挪动关闭按钮至左侧 更改顶部 bar 显示方式为 unity 风格 使用思源宋体 gnome 相关 安装 gnome shell extension 常用应用 albert(类似 ...

  7. Ubuntu 20.04 桌面版安装显卡驱动过程

    在桌面版安装显卡驱动时似乎与server存在差别,分屏输出的时候如果建立了nouveau的blacklist那可能会导致某个接口的显示屏无法输出的问题,解决的办法则是将已经建立的blacklist删除 ...

  8. Ubuntu的配置(以ubuntu 20.04桌面版为例)

    文章目录 一.更换镜像源 二.安装VMware Tools工具 三.安装Google浏览器 四.安装搜狗输入法 五.安装C/C++开发工具Clion 1.安装编译环境 2.安装开发环境 一.更换镜像源 ...

  9. Ubuntu 16.04 桌面版使用体验报告

    Ubuntu 16.04 Desktop Linux 操作系统 非双系统.非虚拟机 主要用途 办公.影音娱乐.上网 编程学习开发 -放弃Windows,Ubuntu体验之旅 – 正式开始 ▼ –01- ...

最新文章

  1. 谷歌的深度学习在AI芯片中找到了一条关键路径
  2. Winfrom devexpress 通用权限框架
  3. 斜杠的意思是或还是和_开启你的斜杠人生
  4. java 线程栈空间_java线程的内存不包含在JVM堆与栈中
  5. 【Linux网络编程】原始套接字实例:MAC 地址扫描器
  6. ES6箭头函数和模板字符串
  7. java+解析未知json_在Java中解析JSON时如何忽略未知属性– Jackson @JsonIgnoreProperties注释示例...
  8. JPA 2.1实体图–第2部分:在运行时定义延迟/急切加载
  9. 如何下服务器上文件是否存在问题,怎么读取服务器数据库文件是否存在
  10. CCF201503-3 节日(100分)
  11. 以写代学:python shutil模块
  12. 如何使用JavaScript从字符串中删除空格?
  13. python入门指南_Python中的逻辑门–入门指南
  14. day 21 模块 和 包
  15. html5翻牌小游戏源码,html5记忆翻牌游戏实现思路及代码
  16. 经纬度坐标转换的方法
  17. 有哪个瞬间让你觉得这个世界出bug了?
  18. vue第五天笔记02——vuex数据仓库
  19. MTK6226-DS-PHB-SIMB-Load
  20. 腿麻脚软警告,体虚者勿入!

热门文章

  1. “九头虫”病毒技术分析报告
  2. JQuery插件:ScrollTo平滑滚动到页面指定位置
  3. ZOJ2158,POJ1789
  4. RSS制作阅读器(利用RssToolkit for asp.net 2.0)
  5. asp sql查询字段 过滤空格_SQL面试经典问答集萃
  6. Tungsten Fabric SDN — 基于 Tags 的安全访问控制策略
  7. 数据中心网络架构 — 传统数据中心网络 — 胖树型三层网络架构
  8. 边缘计算 — 业务的需求特征
  9. CAS KVM 虚拟机的保护与恢复
  10. 安卓蓝牙调试软件和微信小程序搜索不到设备