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

systemd-udevd 无法在启动时启动 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.

systemd 服务中有两个条目:

systemctl status triggerhappy.service
systemctl status triggerhappy.socket

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

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

答案1

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

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

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

$ sudo systemctl disable triggerhappy.service
$ sudo systemctl disable triggerhappy.socket

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

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

$ sudo apt-get remove triggerhappy

答案2

正如@所指出的迦勒不幸的是,该服务似乎存在一个长期存在的错误triggerhappy。但是,如果您希望triggerhappy happy 守护进程考虑新事件源(可能来自在启动期间或启动后连接到计算机的设备)触发的事件,则 udev 规则可能会很有用。要解决此错误,您可以将文件RUN中的行替换60-triggerhappy.rules为以下内容:

        RUN+="/bin/systemctl restart triggerhappy"

相关内容