我安装了一个没有GUI的最小Debian系统(稳定),切换到testing/jessie以获得Cinnamon桌面,但是X没有在启动时启动。如果我在 CLI 上以我自己的身份登录,我可以键入内容startx
来启动 GUI,并且不会遇到任何问题。所以,我添加了以下内容/etc/inittab
:
# The default runlevel.
id:5:initdefault:
# ...
sx:45:once:/bin/su -c /usr/bin/startx -l bateman
这没有任何影响。为什么不?更重要的是,如何在不安装任何软件的情况下使其工作?
编辑
看起来我/etc/inittab
根本没有做任何事情。改变
1:2345:respawn:/sbin/getty 38400 tty1
到
1:2345:respawn:/sbin/getty -a bateman 38400 tty1
不自动登录(即使在创建并将自己添加到组之后autologin
)(从这里开始的疯狂刺杀),并注释掉
3:2345:respawn:/sbin/getty 38400 tty3
不禁用tty3
。到底是怎么回事?
答案1
systemd 不向后兼容 System 5 init
,仅向后兼容 System 5 rc
。
您已经从 Debian 7 切换到了未来的 Debian 8。您可能不知道,这已经将您的系统管理从 (Linux) System 5 init
+切换rc
到了 systemd。 systemd 是默认的 init 系统,特定的升级会执行此切换。
Linux System 5 风格的系统管理由两部分组成,init
它作为进程 #1 运行,rc
负责运行启动和停止脚本。它们实际上来自 Debian 中的两个不同的软件包。 init
是来自系统维尼特包,rc
通常来自sysv-rc包裹。 (有一些替代rc
程序可以与系统 5 一起使用init
,在文件-rc和开放资源库包。)
/etc/inittab
是经过处理的配置文件init
。 systemd 不为此提供任何向后兼容机制。 systemd 的 System 5 向后兼容机制仅适用于 System 5 rc
,它运行/etc/init.d/
. (systemd 也没有为 file-rc 和 openrc 的配置机制实现向后兼容机制。)
这不是 systemd 特有的东西。差不多不替换 init/系统管理器 — 来自 Felix von Leitner 的minit
通过初始化NGsystem-manager
和新贵开胃菜——流程/etc/inittab
。唯一看过的/etc/inittab
是尼古拉·弗拉多夫 (Nikola Vladov) 的尼尼特。
要将服务连接到 systemd,您必须使用它所使用的机制做支持,即自己的服务单位文件和 System 5rc
配置文件在/etc/init.d/
.如何startx
作为 systemd 服务运行是不同的问题, 当然。
进一步阅读
inittab
。第 5 节:Ubuntu 14.10 手册页。- 托勒夫雾轩 (2014-05-11)。 systemd 不尊重
/etc/inittab
。 747742.Debian 错误跟踪系统。 - 乔纳森·德博因·波拉德 (2015)。
/etc/inittab
已成为过去。。常见答案。
答案2
startx
仅当您登录到控制台时,您才有权启动 X 会话。远程用户(例如)没有获得此权限。当您/bin/su -c /usr/bin/startx -l bateman
从运行时/etc/inittab
,您不会获得控制台,因此启动 X 服务器会失败。
在运行时获取 GUI 的正常方法是运行显示管理器。显示管理器启动 X 服务器并以图形模式显示登录提示。在 Debian wheezy 上,您可以选择gdm3(侏儒的外观和感觉),克德姆(KDE 外观和感觉),光DM(现代,独立于 DE),苗条的(轻量级,可配置),波分复用(WindowMaker 外观和感觉)和西德米(老式的雅典娜外观和感觉)。您使用的显示管理器与登录后使用的图形环境无关:显示管理器的选择取决于系统管理员,用户在登录后可以使用自己喜欢的环境。
如果您不想登录控制台,因为您的计算机位于只有您可以进入的房间中,则有多个显示管理器可让您设置自动登录。例如,与 LightDM,编辑/etc/lightdm/lightdm.conf
并取消注释该行autologin-user=
并在等号后添加您的用户名。
答案3
好吧,最后我确实在startx
没有显示管理器的情况下运行了。它对我的启动时间没有任何帮助,但没关系。我按照中的说明进行操作X 没有显示管理器在 Gentoo wiki 中,创建自动登录服务/etc/systemd/system/x11.service
。
[Unit]
After=systemd-user-sessions.service
[Service]
ExecStart=/sbin/mingetty --autologin username --noclear tty7 38400
[Install]
WantedBy=graphical.target
并使用.bash_profile
# Following automatically calls startx when you login:
[[ -z $DISPLAY && $XDG_VTNR -eq 7 ]] && exec startx