你提到的 “Ubuntu trigger” 可能有几种不同含义,我先分情况说明,你看看哪一种符合你的需求。
在 Ubuntu 中常用 systemd timer 来“触发”任务。
sudo nano /etc/systemd/system/mytask.service
内容示例:
[Unit]
Description=My Task
[Service]
ExecStart=/usr/bin/bash /opt/mytask.sh
sudo nano /etc/systemd/system/mytask.timer
示例(每天 3 点触发):
[Unit]
Description=Run mytask daily
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target
sudo systemctl daemon-reexec
sudo systemctl enable --now mytask.timer
查看:
systemctl list-timers
当文件或目录变化时触发脚本。
sudo apt install incron
sudo incrontab -e
示例(/var/www 文件变化时执行):
/var/www IN_MODIFY /opt/script.sh $@/$#
如果是 Ubuntu 上跑 CI:
on:
push:
branches: [main]
硬件插入触发:
sudo nano /etc/udev/rules.d/99-mytrigger.rules
示例(USB 插入执行):
ACTION=="add", SUBSYSTEM=="usb", RUN+="/opt/usb.sh"
重载:
sudo udevadm control --reload
例如:
triggerhappywatchexecautorandr可以告诉我:
我可以直接给你一份可复制的配置。