温馨提示×

centos trigger怎么用

小樊
45
2026-09-21 10:44:45
栏目: 智能运维

在 CentOS 里你说的 trigger 一般有两种常见场景,我分别说明,你看是哪一种:


一、RPM 包中的 %trigger(RPM spec 触发器)

如果你是在 写 RPM 包(spec 文件),trigger 用于在其他包安装/卸载时执行脚本。

常见用法

1. %triggerin(某包安装或升级时触发)

%triggerin -- package_name
echo "package_name 被安装或升级了"

示例:

%triggerin -- httpd
systemctl restart myservice

含义:当 httpd 被安装或升级 时,触发本包的逻辑。


2. %triggerun(某包卸载时触发)

%triggerun -- httpd
echo "httpd 被卸载"

3. %triggerpostun(某包卸载完成后触发)

%triggerpostun -- httpd
echo "httpd 卸载完成"

常见场景

  • 依赖服务重启
  • 配置文件同步
  • 数据库迁移

二、systemd 中的 trigger(单元触发)

如果你说的是 CentOS 7/8 的 systemd:

1. 手动触发服务

systemctl start nginx
systemctl restart nginx

2. 被其他服务触发(依赖)

[Unit]
Requires=nginx.service
After=nginx.service

3. path / timer 触发器

systemctl enable nginx.path
systemctl start nginx.timer

三、如果你指的是其他 trigger

也可能是:

  • cron trigger
  • udev trigger
  • inotify / fsnotify
  • 数据库 trigger(MySQL / PostgreSQL)

你可以补充一句:

“我说的是 RPM / systemd / 数据库 / 定时任务 的 trigger”

我可以给你更精准的例子。

0 踩