如何覆盖 systemd“Conflicts=”行

如何覆盖 systemd“Conflicts=”行

当我需要进入非图形环境时,我倾向于使用TTY1。但是,我也开始使用 SDDM 作为我的欢迎程序,它使用 TTY1,使其无法使用。我发现,如果您输入sddm --example-config并将输出重定向到/etc/sddm.conf,则可以编辑该文件,更改MinimumVT=,使其等于 8。

这是困难的部分:systemd 单元文件仍然与getty@tty1.我希望我可以用来# systemctl edit sddm; systemctl daemon-reload覆盖这个。我尝试[Unit]使用(空白/行尾)创建一个新的部分Conflicts=,但这根本没有帮助。我也尝试过[email protected],希望这会否定这个字段,但这没有用。 (我也尝试过同时使用两者,前者接着后者。)我可以直接修改单元文件,但是下次更新SDDM时,我将丢失我的修改(我正在运行Arch,所以*所有内容*都会经常更新)。

有没有办法清除Conflicts=systemd 中的变量,或者我 SOL 吗?

答案1

首先,找出您的标准sddm.service文件所在的位置:

$ systemctl show -p FragmentPath sddm.service
FragmentPath=/lib/systemd/system/sddm.service

如果低于/lib/systemd/system/,那就应该是这样。然后您可以将其复制到/etc/systemd/system/然后修改为您想要的内容:中的单元文件/etc/systemd/system/将自动覆盖 中具有相同名称的任何文件/lib/systemd/system

对 systemd 单元的任何发行版更新都应该/lib/systemd/system只影响:/etc/systemd/system应该完全在本地系统管理的权限之下。如果 Arch 破坏了这种职责分离,请提交错误报告。

相关内容