Вы можете попросить rsyslogd
запустить программу, когда она соответствует строке. Создайте файл, например /etc/rsyslog.d/my.conf
, со строкой вида
.
:msg, contains, "bad trackpad package" ^/bin/mytrackpadreset
, и это запустит скрипт /bin/mytrackpadreset
, когда сообщение будет видно, передав все сообщение как один строковый аргумент. Поскольку демон работает от имени пользователя root, вы можете просто поместить в сценарий требуемую команду rmmod bcm5974 && modprobe bcm5974
, хотя вам может потребоваться сначала установить подходящий PATH.
Я думаю, что раньше rsyslogd
ждал завершения скрипта, прежде чем продолжить, но теперь это не так. Если вы ожидаете увидеть сообщение много раз подряд, вам может потребоваться дополнительная работа над сценарием, чтобы справиться с несколькими параллельными запусками.
Этот устаревший формат(^program
)заменяется модулем omprog , который более полезен для программ, которые вы хотите запускать один раз и выполнять непрерывно, передавая сообщения на стандартный ввод.