这个问题与可能的候选问题不同,因为我在这里问如何在启动时删除服务
我正在使用一个Seeed ReSpeaker Core v2.0木板。我想使用 UART 接口使这块板与另一块板通信。但 UART 端口 /dev/ttyS2 已链接到控制台。我已经确定了一个链接到主板的服务,我想禁用它以防止它在启动时启动:
userk@glutamate:~$ sudo systemctl status | grep ttyS2
│ │ ├─[email protected]
│ │ │ └─1078 /sbin/agetty --keep-baud 115200,38400,9600 ttyS2 vt220
│ ├─1093 grep ttyS2
官方页面上没有与bootloader相关的信息。我已经问过一个问题在他们的论坛上。
编辑0
该服务是静态启用的
userk@glutamate:~$ systemctl list-dependencies --reverse serial-getty@ttyS2
[email protected]
● └─getty.target
● └─multi-user.target
● └─graphical.target
当我停止并禁用它时,情况似乎很好:
userk@glutamate:~$ sudo systemctl stop [email protected]
userk@glutamate:~$ sudo systemctl disable [email protected]
userk@glutamate:~$ sudo systemctl status | grep ttyS2
│ ├─1135 grep ttyS2
但当我重新启动系统时,它又出现了。
编辑1
- 我正在使用 Debian 9(延伸)。我使用了 SeedStudio 制作的图像。
- 我问了与此服务相关的另一个问题这里。正如@JdeBP 在他的回答中所说
驱动这一点的基本配置项是通过引导加载程序在命令行上向内核提供的控制台设置。它告诉生成器要启动哪些串行控制台服务。它告诉内核将内核控制台输出发送到哪里。它告诉内核将 /dev/console 输出发送到哪里。如果您不希望您的串行设备成为控制台,则您需要进行调整。
编辑2
我找不到[电子邮件受保护]在 /lib/systemd/system 文件夹中。我在用。grep -rl [email protected] /lib/systemd/system
答案1
下列的编辑2,这个答案已经过时了。
请注意,您不应该将这样的配置写入/lib/
.我希望您(或其他管理员)只是错误地在那里创建了它,并且没有更复杂的问题。在这种情况下,你可以恢复它,即
rm /lib/systemd/system/getty.target.wants/[email protected]
然后就可以重启了。 (或者运行systemctl daemon-reload
,然后再次检查该服务是否已正确禁用)。
在删除文件之前,我可能会仔细检查软件包是否未提供不需要的链接
dpkg-query -S /lib/systemd/system/getty.target.wants/[email protected]
它确实是一个符号链接
ls -l /lib/systemd/system/getty.target.wants/[email protected]
您还可以检查管理员不当放置的其他文件。安装 Debian 软件包cruft
并运行cruft -d "/lib/systemd/system"
。
答案2
0.关于[电子邮件受保护]
$ sudo systemctl status [email protected]
● [email protected] - Serial Getty on ttyS0
Loaded: loaded (/lib/systemd/system/[email protected]; enabled-runtime; vendor preset: enabled)
Active: active (running) since Wed 2022-06-08 02:20:07 CST; 2min 7s ago
Docs: man:agetty(8)
man:systemd-getty-generator(8)
http://0pointer.de/blog/projects/serial-console.html
Main PID: 420 (agetty)
Tasks: 1 (limit: 4336)
CPU: 12ms
CGroup: /system.slice/system-serial\x2dgetty.slice/[email protected]
└─420 /sbin/agetty -o -p -- \u --keep-baud 115200,57600,38400,9600 ttyS0 vt220
1. 关于systemd-getty-generator
man systemd-getty-generator
https://man.archlinux.org/man/systemd-getty-generator.8.en
这些东西 在每次系统启动时console=
从/proc/cmdline
、 和
生成器(并启用)serial-getty@
实例进行解析。[email protected]
2.停止闹鬼
A. 禁用 systemd-getty-generator
sudo chmod -x /lib/systemd/system-generators/systemd-getty-generator
阻止这闹鬼的事情
或者
B. 在引导加载程序中更改内核命令行
删除console=ttyS0
东西
cat /proc/cmdline
核实