在 Ubuntu(以及一般的 Linux 系统)里,**“trigger 规则”**这个说法通常出现在几种不同场景中。你需要先确认你指的是哪一种,下面我按常见情况分别说明。
如果你说的是 Ubuntu 服务触发(trigger),一般指 systemd 的:
triggers.targetWants / Requires / After / Beforesystemctl trigger在 .service 或 .target 文件中:
[Unit]
Description=My Trigger Service
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/my-script.sh
[Install]
WantedBy=multi-user.target
[Unit]
Description=Trigger B when A starts
Requires=service-b.service
After=service-b.service
或者:
[Install]
WantedBy=service-a.service
sudo systemctl trigger service-name
如果你说的是 设备插入触发脚本:
# /etc/udev/rules.d/99-myusb.rules
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1234", ATTR{idProduct}=="5678", RUN+="/usr/local/bin/usb-plugin.sh"
重新加载:
sudo udevadm control --reload
sudo udevadm trigger
如果你说的是 Debian/Ubuntu 包管理 trigger:
debian/triggers 中:interest /usr/share/myapp
或在 postinst 中:
dpkg-trigger --no-await /usr/share/myapp
# 每天 3 点 trigger
0 3 * * * /usr/local/bin/backup.sh
你可以告诉我:
我可以直接给你一份可复制的示例配置。