xinit启动X Window System过程初探(转)

启动X主要有两种方法:一是Display Manager,如XDM、GDM、KDM,此种方法通过图像界面登录;另一种是通过xinit,此种方法适用于字符界面登录。我们常用于登录X的startx命令也是通过传递参数给xinit来启动X的,也就是说,最终启动X的是xinit。startx只是个bash脚本。下面主要分析xinit一下初始化X的过程:
         首先来看一看xinit命令的用法:
             xinit [[client] options ] [-- [server] [display] options] 
能够看出,xinit初始化X是通过两个层面来进行的,即X client程式和X server程式。上面[client]和[server]分别称为X client程式和X server程式。他们代表的是程式的具体路径,其必须以/或./开头。
       默认情况下,当我们CLI下执行不带任何参数的xinit命令时,xinit会在目录下搜索.xinitrc文档当作X client来执行,也就是说,您能够在其中配置进入X时便运行的X client程式,具体的配置见后。根据$HOME/.xinitrc的有无,xinit会有不同的运行情况。 
   1.若存在$HOME/.xinitrc,相当于执行:
   xinit $HOME/.xinitrc -- /usr/bin/X
   2.若不存在$HOME/.xinitrc,相当于执行:
   xinit xterm -- /usr/bin/X
假如不存在$HOME/.xinitrc或是未正确配置$HOME/.xinitrc都不会进入Desktop Environment(桌面环境,如GNOME、KDE等),呈现在我们面前的只有一个xterm和"X"状的鼠标。那么怎样才能进入Desktop Environment呢?让我们来分析一下startx命令的运行情况吧。 通过分析startx命令文档的内容,得知startx主要是置X client和X server所在的位置,并处理相关参数,最后交给xinit处理。能够看出startx 配置X client的位置是先搜寻$HOME/.xinitrc,然后是/etc/X11/xinit/xinitrc;配置X server的位置是先搜寻$HOME/.xserverrc,然后是/etc/X11/xinit/xserverrc。 
      即相当于运行了以下命令:
                xinit /etc/X11/xinit/xinitrc -- /etc/X11/xinit/xserverrc
      进一步分析:
                xinit /etc/X11/Xsession -- /usr/bin/X11/X -dpi 100
Xsessin是个重要的文档,为什么要怎么说呢?因为不管是通过Display Manager登录X,还是通过xinit(startx)登录X,他都会被执行。Xsession是个全局文档。 
      Xsession文档中以下内容:
            /usr/bin/x-session-manager/*启动Desktop Environment*/
            /usr/bin/x-window-manager/*启动Window Manager*/
            /usr/bin/x-terminal-emulator/*启动Terminal*/ 
这就是为什么我们能够用一个startx命令直接进入X的原因所在了。假如我们要进入GNOME我们只需要将/usr/bin/x-session-manager所链接的目标文档改为/usr/bin/gnome-session,然后把/usr/bin/x-window-manager所链接的目标文档改为/usr/bin/metacity,把/usr/bin/x-terminal-emulator所链接的目标文档改为/usr/bin/gnome-terminal就能够了。 
弄清楚了以上的内容,我们就能够修改$HOME/.xinitrc,通过xinit来启动Desktop Environment了,下面以启动GNOME为例:
首先在$HOME下创建.xinitrc文档,然后添加以下内容:
            gnome-session&
            metacity/*除了最后一个命令在前台运行以外,其他的都应运行在后台*/
保存后,您就能够在终端通过执行xinit来启动GNOME了,是不是很酷呢? 
       利用xinit启动X的时候应注意,假如第一个运行的X client结束,xinit将自动结束X,返回到CLI。下面以具体的例子来说明:
   当不存在$HOME/.xinitrc时,执行xinit metacity,将会出现一个可移动的xterm(无$HOME/.xinitrc,xinit默认启动xterm),当然也有一个X
server。关闭xterm将退出X,因为xterm是第一个运行的X client。当存在$HOME/.xinitrc且包含如下内容: 
                xeyes&
                metacity&
                xterm
执行xinit将会出现一个xterm和一个xeyes,关闭xterm将退出X,因为其他的X client(xeyes、metacity)都是运行在后台的,而xterm是前台运行的第一个X client。
       同理,我们也能够通过以下的命令来启动Desktop Environment: 
            xinit gdm
            xinit /etc/X11/Xsession

 



Linux启动级别:init 0,1,2,3,4,5,6

linux服务开机启动和运行级别

linux服务自动启动功能

新手学堂:Linux操作系统的启动步骤说明

xinit启动X Window System过程初探

Linux系统服务自启动设置_Tomcat

rc.local自启动学习

init.d,rc.d详解 Linux运行时详解


Linux部分 精彩 推荐

Linux系统初学者的常见问题解决集结

Linux挂载U

linux 下的挂载

redhatubuntu系统下挂载ntfs文件系统的方法(转载)

疯狂挂载:Linux连接常用外部设备的方法

ubuntu 重装系统备份数据   ubuntu安装kde桌面

ubuntu全局配置文件

ubuntu安装rpm的方法

ubuntu设置全攻略

Linux 常用C函数说明-文件权限控制篇

rpm deb命令集合

rc.local自启动学习

init.drc.d详解 Linux运行时详解

linuxtar gz bz2 tgz z等众多压缩文件的解压方法

tar命令用法详述

使用tar进行磁带备份的命令汇总

LINUX:解压问题tar: Child returned status 1

Linux系统服务自启动设置_Tomcat

Linux操作系统下SSH默认22端口修改方法

Linux启动级别:init 0,1,2,3,4,5,6

linux服务开机启动和运行级别

linux服务自动启动功能

新手学堂:Linux操作系统的启动步骤说明

xinit启动X Window System过程初探

构建小型Linux跟文件系统镜像(Ext2 Ext3

linux内核源码目录结构

简述 Linux 文件系统的目录结构

Linux目录结构及解释

Linux 内核源代码的结构

linux文件系统的目录结构

linux 端口 操作

Linux操作系统下软件的安装与卸载

vim 实用的经验

网络管理:超级详细Tcpdump 的用法

Linux系统下网卡网络配置基础

vsFTPd自架Linux网络安装服务器,以及Redhat局域网安装的解决办法

网络管理:超级详细Tcpdump 的用法

[]tcpdump 教程 用法 使用

Linuxtelnet配置

linux 任务计划 cron

YUM 库的安装

Linux环境变量的设置和查看方法

Linux命令速查手册

关于linux系统中命令的使用详解

简单而常用的shell 命令

rpm常用命令集合

[常用命令]diff

vi指令大全

LINUX/UNIX vi全屏幕编辑器

Linux操作系统Ifconfig命令详细解析

linux top命令详解

chmod命令使用详解

Linux主要shell命令详解

linux ps命令使用详解

Linux下设置和修改IP

Linuxfind用法整理

Fedora 中的 Yum 命令详解

rpm常用命令集合

Linux cat 命令用法

chmod命令详细用法

linux redhat命令大全

Linux操作系统下/etc/hosts文件

LINUX PATH环境变量

如何安装无签名认证的rpm

LINUX关于休眠、待机和睡眠的问题

initrd.img处理

Linux字符集的修改方法

Awk学习笔记

shell取得文件行数6

正则表达式

shell中单引号、双引号、反引号、反斜杠的使用

Linux开机过程(转)

LINUX中注销其他已登陆帐户

学习 Linux LVM

shell 中的参数替换

mkswap 把一个分区格式化成为swap交换区

rsh的配置

修复GRUB

Linux自动注销登录的帐户

linux下的/dev/shm/  以及与swap目录的区别

Redhat Linux配置远程桌面

Linux截图工具import使用说明

LinuxUNIX下磁带机的管理和使用

Linux 磁带机备份完全攻略

gnome桌面环境 kde桌面环境的区别

linux i18n修改,中文版英文版体现

linux命令-locale字符显示

linux命令-locale字符显示

RedHat 8.0软件包组--桌面类

让英文版的LINUX 支持中文显示

Linux  shell内核使用

RedHat Enterprise Linux Oracle 9i的安装配置与调优

Linux下安装mysql后无法启动的解决方法

百度最全的LINUXRedhat学习教程下载帖大全

Redhat linux 安装 gcc编译器,Gcc源码包,rpm包安装方法!

RHCE题库

Redhat Enterprise Linux 6 正式版已经发布!

VMWare虚拟机安装RedHat Linux全过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值