在 Ubuntu 里并没有一个叫 “trigger” 的标准功能,所以要先确认你具体指的是哪一类 trigger。下面把最常见的几种情况都列出来,你可以对照看看是哪一种,或者把上下文告诉我(比如是 systemd / apt / 脚本 / 桌面 / 定时任务)。
systemd 本身没有“开启 trigger”的开关,而是通过 unit 之间的依赖/触发关系 实现的。
systemctl enable xxx.socket
systemctl start xxx.socket
当有人访问该 socket 时,对应的 service 会被触发启动。
systemctl enable xxx.path
systemctl start xxx.path
当指定路径发生变化(如文件创建、修改)时触发服务。
systemctl enable xxx.timer
systemctl start xxx.timer
✅ 查看状态:
systemctl list-timers
这是 Ubuntu 包管理里的概念,一般不需要手动开启。
查看已有 trigger:
ls /var/lib/dpkg/triggers/
触发点通常在软件包安装/升级时自动执行,比如:
✅ 一般不会也不建议手动干预。
这常被误叫成 trigger。
sudo systemctl enable cron
sudo systemctl start cron
编辑任务:
crontab -e
例如用 inotifywait:
sudo apt install inotify-tools
inotifywait -m /path -e create -e modify | while read path action file; do
echo "$file changed"
done
比如:
这些通常在:
设置 → 电源 / 设备 / 自动化
或通过 gsettings / udev 规则实现。
例如:
示例 udev trigger:
sudo udevadm trigger
你可以直接回复类似:
我可以直接给你精确命令 + 示例配置。