在 CentOS 里你说的 trigger 一般有两种常见场景,我分别说明,你看是哪一种:
%trigger(RPM spec 触发器)如果你是在 写 RPM 包(spec 文件),trigger 用于在其他包安装/卸载时执行脚本。
%triggerin(某包安装或升级时触发)%triggerin -- package_name
echo "package_name 被安装或升级了"
示例:
%triggerin -- httpd
systemctl restart myservice
含义:当 httpd 被安装或升级 时,触发本包的逻辑。
%triggerun(某包卸载时触发)%triggerun -- httpd
echo "httpd 被卸载"
%triggerpostun(某包卸载完成后触发)%triggerpostun -- httpd
echo "httpd 卸载完成"
如果你说的是 CentOS 7/8 的 systemd:
systemctl start nginx
systemctl restart nginx
[Unit]
Requires=nginx.service
After=nginx.service
systemctl enable nginx.path
systemctl start nginx.timer
也可能是:
你可以补充一句:
“我说的是 RPM / systemd / 数据库 / 定时任务 的 trigger”
我可以给你更精准的例子。