Debian Jessie 更新后,startx 自动登录不会在 /etc/inittab 中运行

Debian Jessie 更新后,startx 自动登录不会在 /etc/inittab 中运行

我安装了一个没有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 服务运行是不同的问题, 当然。

进一步阅读

答案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

相关内容