温馨提示×

怎样写ubuntu trigger规则

小樊
40
2026-10-21 04:52:10
栏目: 智能运维

在 Ubuntu(以及一般的 Linux 系统)里,**“trigger 规则”**这个说法通常出现在几种不同场景中。你需要先确认你指的是哪一种,下面我按常见情况分别说明。


一、systemd 中的 trigger(最常见)

如果你说的是 Ubuntu 服务触发(trigger),一般指 systemd 的:

  • triggers.target
  • 服务之间的 Wants / Requires / After / Before
  • systemctl trigger

1️⃣ 基本 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

2️⃣ 让一个服务 trigger 另一个服务

[Unit]
Description=Trigger B when A starts
Requires=service-b.service
After=service-b.service

或者:

[Install]
WantedBy=service-a.service

3️⃣ 手动 trigger

sudo systemctl trigger service-name

二、udev 规则中的 trigger(硬件触发)

如果你说的是 设备插入触发脚本:

示例 udev trigger 规则

# /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

三、APT / dpkg 的 trigger(软件包)

如果你说的是 Debian/Ubuntu 包管理 trigger:

在 debian/triggers 中:

interest /usr/share/myapp

或在 postinst 中:

dpkg-trigger --no-await /usr/share/myapp

四、cron / 定时 trigger(时间触发)

# 每天 3 点 trigger
0 3 * * * /usr/local/bin/backup.sh

五、你最可能是想问的?

你可以告诉我:

  1. 是 系统服务 trigger 吗?
  2. 是 硬件(USB/磁盘)插入触发?
  3. 是 软件包安装触发?
  4. 还是 某个程序事件触发脚本?

我可以直接给你一份可复制的示例配置。

0 踩