我使用的是MacBooPro10,1 Debian稳定系统(rsyslogd默认安装),触控板最终会出现故障(指针停止工作),如下所示:
$ dmesg
[...]
[1910159.662967] bcm5974: bad trackpad package, length: 8解决方案是微不足道的:
$ sudo rmmod bcm5974 && sudo modprobe bcm5974但我宁愿让它自动完成。
如何解析dmesg输出并触发命令(sudo power)?
发布于 2019-05-15 15:21:36
当程序与行匹配时,您可以要求rsyslogd运行它。创建一个文件(如/etc/rsyslog.d/my.conf ),其行如下
:msg, contains, "bad trackpad package" ^/bin/mytrackpadreset当看到消息时,这将运行脚本/bin/mytrackpadreset,将整个消息作为单个字符串参数传递。当守护进程以root方式运行时,您可以简单地将所需的rmmod bcm5974 && modprobe bcm5974命令放在脚本中,尽管您可能需要首先设置一个合适的路径。
我认为,在过去,rsyslogd会等到脚本结束后才会继续,但现在似乎不是这样了。如果您希望在突发事件中多次看到消息,那么您可能需要在脚本中做一些额外的工作来处理并行运行的几次。
这个遗留格式(^program)被奥美普模块取代,它对于您想要启动一次并连续运行的程序更有用,可以在stdin上将消息传递给它。
发布于 2019-05-15 11:08:42
使用少量的grep-ing,您将发现dmesg在/var/log/messages中输出的相同信息。
仍然存在一个问题,就是在不浪费资源的情况下观看这个文件(并且没有一个“一分钟cron",这是相当不雅的)。
https://unix.stackexchange.com/questions/519051
复制相似问题