在 Ubuntu 里,“trigger” 这个词可能指几种不同东西,我先按最常见的几种场景给你说明,你可以看哪一类符合你的需求。
Ubuntu 大量使用 systemd,很多服务是由 trigger / path / timer / socket 触发的。
systemctl list-units --type=trigger
systemctl list-units --type=path
systemctl list-units --type=timer
systemctl list-units --type=socket
journalctl -f
或只看某个服务:
journalctl -u your-service.service -f
systemctl show your-service.service -p TriggeredBy
systemctl show your-service.service -p PartOf
例如:
# /etc/systemd/system/xxx.path
[Path]
PathChanged=/var/log/test.log
查看状态:
systemctl status xxx.path
journalctl -u xxx.path -f
Ubuntu 的 apt 在安装软件时常用 dpkg triggers。
sudo apt install -f
sudo dpkg --configure -a
cat /var/log/dpkg.log | grep trigger
sudo dpkg --triggers-only package_name
systemctl status cron
cat /var/log/syslog | grep CRON
tail -f /var/log/syslog | grep CRON
常见做法:
inotifywait(文件变化)systemd pathauditdsudo apt install inotify-tools
inotifywait -m /path/to/dir
udevadm monitor
sudo udevadm trigger
如果你只是想“知道 Ubuntu 里什么时候发生了 trigger”:
journalctl -f
配合:
systemctl monitor
如果你能补充说明:
我可以直接给你可复制的监控命令或配置示例。