无法禁用 systemd Serial-getty 服务

问题描述 投票:0回答:3

在装有 Arch Linux 的 Raspberry Pi 上,有一个名为

serial-getty@AMA0
的服务处于活动状态。

单元文件为:/usr/lib/systemd/system/[电子邮件受保护]

作为root我可以调用

systemctl stop serial-getty@ttyAMA0
systemctl disable serial-getty@ttyAMA0

但是重新启动后,服务将启用并再次运行。

为什么服务关闭后又开启了?如何永久禁用它?

更新

systemd 使用 /usr/lib/systemd/system-generators/ 中的 generators 是一个名为 systemd-getty-generator 的二进制文件。该二进制文件在系统启动时运行,并将符号链接 [email protected] 添加到

/run/systemd/generator/getty.target.wants

我最终找到了一个肮脏的解决方案。我注释掉了 /usr/lib/systemd/system/[email protected] 中的所有操作。该服务似乎确实启动了,但没有阻止 ttyAMA0。

raspberry-pi archlinux tty gpio systemd
3个回答
43
投票

停止再次启用服务的正确方法是使用:

systemctl mask [email protected]

(本例中使用 ttyAMA0 作为示例)。这将向该服务的条目添加一个指向 null 的链接。


0
投票

我找到了一种方法来阻止内核运行生成器,从而根本不启动服务。必须添加以下内核参数:

systemd.getty_auto=no

在这里找到了这个答案。

由于我使用的是 Raspberry Pi 4,因此我将此参数添加到 /boot/cmdline.txt 文件中。


-5
投票
试试这个代码:

system("systemctl stop [email protected]"); system("systemctl disable [email protected]");

我用过,效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.