温馨提示×

linux trigger在哪设置

小樊
41
2026-09-23 23:34:05
栏目: 智能运维

在 Linux 里,“trigger”这个词出现在很多不同的场景里,所以要先看你说的是哪种 trigger。下面按常见情况给你说明设置在哪:


1. systemd 服务 / 定时任务(最常见)

如果你说的是服务什么时候被触发启动:

① timer 触发器(类似 cron)

设置在 .timer 文件里:

/etc/systemd/system/xxx.timer

示例:

[Timer]
OnCalendar=*-*-* 02:00:00
Unit=xxx.service

启用:

systemctl enable xxx.timer
systemctl start xxx.timer

② 服务依赖触发

在 .service 文件里:

/etc/systemd/system/xxx.service
[Unit]
After=network.target
Wants=other.service

查看状态:

systemctl list-timers

2. udev 设备触发(硬件插拔)

如果你说的是设备插入/移除时触发脚本:

配置文件在:

/etc/udev/rules.d/

示例:

ACTION=="add", SUBSYSTEM=="usb", RUN+="/usr/local/bin/usb.sh"

重新加载:

udevadm control --reload

3. inotify / 文件变化触发

如果你说的是文件或目录变化触发:

常用工具:

  • inotifywait(inotify-tools)
  • systemd path 单元

systemd path 示例

/etc/systemd/system/xxx.path
[Path]
PathChanged=/var/log/test.log
systemctl enable xxx.path

4. 内核 / sysfs trigger(硬件或模块)

某些设备有:

/sys/class/xxx/trigger

例如 LED:

echo heartbeat > /sys/class/leds/xxx/trigger

5. 数据库 / 应用层 trigger

如果你说的是 MySQL / PostgreSQL trigger:

  • 在数据库里用 SQL 创建
  • 不在 Linux 文件系统中

你可以告诉我:

  • 是 服务启动触发?
  • 还是 USB / 文件 / 时间触发?
  • 或者是某个具体软件(如 Docker、MySQL、CI)?

我可以直接给你对应的配置文件和示例。

0 踩