每当特定的 systemd 服务重新启动时,如何触发自定义脚本到 运行
How to trigger a custom script to run whenever a specific systemd service restarts
我想知道如何在每次重新启动服务时将自定义脚本安排到 运行。
我的用例是,每当我重新启动 Tomcat 服务时,我都必须 运行 几个命令。我想知道是否有一种方法可以编写脚本并将其安排到 运行 每当我重新启动 Tomcat 服务时。
我已将 tomcat 脚本设置为系统服务。我正在使用 Cent OS 7 x64.
我已经能够通过创建另一个服务并将 Tomcat 服务的开始停止合并到新服务中来实现这一点。新服务充当包装服务,它首先启动 tomcat,然后在 tomcat 启动后立即执行我们需要 运行 的命令。
然后在停止时,它会停止 tomcat 和 运行s 清理命令。
编辑:我找到了另一种在 unix 和 linux stackexchange 上执行此操作的方法。
只需在 /etc 中创建一个新的 systemd .service 文件,其中包含并覆盖 /lib 中的部分文件。例如,创建 /etc/systemd/system/tomcat.service 以包含
.include /lib/systemd/system/tomcat.service
[Service]
ExecStartPre=/home/meuh/myscripttorun some pre args here
ExecStartPost=/home/meuh/myscripttorun some post args here
任何 ExecStartPre 行都将在 ExecStart 行之前执行,同样,任何 ExecStartPost 都将 运行 在 tomcat 开始后执行。
我想知道如何在每次重新启动服务时将自定义脚本安排到 运行。
我的用例是,每当我重新启动 Tomcat 服务时,我都必须 运行 几个命令。我想知道是否有一种方法可以编写脚本并将其安排到 运行 每当我重新启动 Tomcat 服务时。
我已将 tomcat 脚本设置为系统服务。我正在使用 Cent OS 7 x64.
我已经能够通过创建另一个服务并将 Tomcat 服务的开始停止合并到新服务中来实现这一点。新服务充当包装服务,它首先启动 tomcat,然后在 tomcat 启动后立即执行我们需要 运行 的命令。
然后在停止时,它会停止 tomcat 和 运行s 清理命令。
编辑:我找到了另一种在 unix 和 linux stackexchange 上执行此操作的方法。 只需在 /etc 中创建一个新的 systemd .service 文件,其中包含并覆盖 /lib 中的部分文件。例如,创建 /etc/systemd/system/tomcat.service 以包含
.include /lib/systemd/system/tomcat.service
[Service]
ExecStartPre=/home/meuh/myscripttorun some pre args here
ExecStartPost=/home/meuh/myscripttorun some post args here
任何 ExecStartPre 行都将在 ExecStart 行之前执行,同样,任何 ExecStartPost 都将 运行 在 tomcat 开始后执行。