“ .xsession”的作用是什么?


Answers:


58

如果以文本模式登录,则使用xinit或wrapper脚本启动GUI会话startx,然后xinit执行以下操作:

  • 启动X服务器(通常通过脚本/etc/X11/xinit/xserverrc)。
  • 通常在/etc/X11(通常是/etc/X11/xinit/xinitrc)中运行一些脚本,具体取决于其设置方式。
  • 运行~/.xinitrc(如果存在)。如果不存在,请运行默认客户端(传统上为xterm)。
  • 一旦~/.xinitrc终止,请杀死X服务器。

如果您以图形方式登录X显示管理器(xdm,gdm,kdm,wdm,lightdm等),传统上,登录后执行的是/etc/X11then 中的一些脚本~/.xsession

~/.xsession具有~/.profile~/.xinitrc组合的作用:应该执行会话的初始启动(例如,定义环境变量),然后启动特定于GUI的程序(通常至少是窗口管理器)。

如今,大多数X显示管理员都可以选择一个会话。选择特定的会话会启动特定的桌面环境,会话管理器,窗口管理器。然后,仅执行DE / SM / WM以及根据选择读取的任何配置文件选择启动的任何程序。许多环境都提供了一个读取传统内容的“自定义会话” ~/.xsession


3
我不知道这是什么“许多环境”,但是至少kdm默默地忽略了«〜/ .xsession»文件。
Hi-Angel

1
@ Hi-Angel .xsession仅在选择特定会话类型时才读取文件。我知道对于Gdm,上游开发人员不希望包含.xsession默认运行的开发人员,而是将其留给每个发行版,而且许多发行版都不会打扰或没有意识到这一需求。我不知道kdm的情况是什么。
吉尔斯

好吧,您知道,我在man kdm中发现kdm有一个自己的文件/etc/kde4/kdm/Xsession,可以在登录后立即以用户身份运行。它们是谎言-文件(此文件现在存在)永远不会被kdm所触及,我什至完全没有删除它,而且它什么都没有改变。
Hi-Angel

1
@ Hi-Angel Gilles的意思是,在图形登录屏幕上,您通常会具有一个列出各种环境的下拉菜单。如果选择“ KDE”,它将启动,并且将忽略.xsession,如您所描述。但是,如果您选择“自定义会话”而不是“ KDE”,那么.xsession它将运行而不是 KDE。例如,我之所以使用它,是因为我只运行xfce4-panelFVWM 2作为“桌面”。如果将KDE安装在我碰巧使用的系统上,它将被完全忽略。
Curt J. Sampson

15

最近,X会话的启动可能会很复杂。一个开始的好地方是脚本/etc/X11/Xsession,该脚本可以查看如何执行。

在我的Debian / Ubuntu系统上,脚本/etc/X11/Xsession设置了变量USERXSESSION=$HOME/.xsession。稍后,/etc/X11/Xsession.d/50x11-common_determine-startup如果的系统策略允许/etc/X11/Xsession.options,并且显示管理器未请求其他会话,则该脚本将查找此脚本并将其用作主会话。


8

我强烈建议您阅读《X窗口系统管理员指南》一书:适用于X版本11。第2章介绍.xsession了示例设置的目的和整个配置过程。对于整个与x窗口相关的术语,它也是一个不错的更新(我希望您不要惊慌:))。你可以从

http://archive.org/details/xwindowsystemadm08muimiss

尽管它已经过时了,但是您可以找到许多直到今天才改变的基本概念的信息,而且非常清晰。此外,看看那些日子的最高水平真的很有趣。


7

.xsession是X11环境的传统开始脚本。如今,像kdm这样的会话管理器已不再有什么用,而是在传统的设置系统上。这是使用startx启动X11之后运行的内容。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.