首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于dmesg解析的自动rmmod / modprobe探针

基于dmesg解析的自动rmmod / modprobe探针
EN

Unix & Linux用户
提问于 2019-05-15 10:32:34
回答 2查看 261关注 0票数 2

我使用的是MacBooPro10,1 Debian稳定系统(rsyslogd默认安装),触控板最终会出现故障(指针停止工作),如下所示:

代码语言:javascript
复制
$ dmesg
[...]
[1910159.662967] bcm5974: bad trackpad package, length: 8

解决方案是微不足道的:

代码语言:javascript
复制
$ sudo rmmod bcm5974 && sudo modprobe bcm5974

但我宁愿让它自动完成。

如何解析dmesg输出并触发命令(sudo power)?

EN

回答 2

Unix & Linux用户

发布于 2019-05-15 15:21:36

当程序与行匹配时,您可以要求rsyslogd运行它。创建一个文件(如/etc/rsyslog.d/my.conf ),其行如下

代码语言:javascript
复制
:msg, contains, "bad trackpad package" ^/bin/mytrackpadreset

当看到消息时,这将运行脚本/bin/mytrackpadreset,将整个消息作为单个字符串参数传递。当守护进程以root方式运行时,您可以简单地将所需的rmmod bcm5974 && modprobe bcm5974命令放在脚本中,尽管您可能需要首先设置一个合适的路径。

我认为,在过去,rsyslogd会等到脚本结束后才会继续,但现在似乎不是这样了。如果您希望在突发事件中多次看到消息,那么您可能需要在脚本中做一些额外的工作来处理并行运行的几次。

这个遗留格式(^program)被奥美普模块取代,它对于您想要启动一次并连续运行的程序更有用,可以在stdin上将消息传递给它。

票数 2
EN

Unix & Linux用户

发布于 2019-05-15 11:08:42

使用少量的grep-ing,您将发现dmesg/var/log/messages中输出的相同信息。

仍然存在一个问题,就是在不浪费资源的情况下观看这个文件(并且没有一个“一分钟cron",这是相当不雅的)。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/519051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档