systemd-udevd 无法在启动时启动 triggerhappy

not*_*bit 3 boot udev systemd raspberry-pi triggerhappy

当我启动 Raspberry Pi3 (4.14.34-v7+) 时,启动后在 dmesg 和其他日志中发现以下错误。但是,我当前没有使用triggerhappy,因此可能会禁用该服务。但如果我将来想使用,我想知道是什么导致了该错误。

systemd-udevd[157]: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

systemd 服务中有两个条目:

systemctl status triggerhappy.service
systemctl status triggerhappy.socket
Run Code Online (Sandbox Code Playgroud)

尝试执行的代码似乎来自
/lib/udev/rules.d/60-triggerhappy.rules::

为什么在启动过程中会失败?
(不过好像要稍后运行...)

小智 5

原因:此错误是由多种原因引起的:

1)该命令th-cmd --socket /var/run/thd.socket --passfd --udev生成一个segfault. 这似乎是因为 triggerhappy 尚未修复以解决过去 4 年报告的许多问题......

2)不幸的是,即使您禁用triggerhappy,错误仍然会出现在syslog中例如:

$ sudo systemctl disable triggerhappy.service
$ sudo systemctl disable triggerhappy.socket
Run Code Online (Sandbox Code Playgroud)

这是因为禁用 triggerhappy 不会删除此处的 udev 规则:/lib/udev/rules.d/60-triggerhappy.rules

解决方案(如果您无论如何都不使用triggerhappy - 就像在无头系统上一样):

$ sudo apt-get remove triggerhappy
Run Code Online (Sandbox Code Playgroud)