linux - 如何在特定 systemd 服务重新启动时触发自定义脚本运行

标签 linux cron systemd

我想知道如何安排自定义脚本在我重新启动服务时运行。

我的用例是,每当我重新启动 Tomcat 服务时,我都必须运行多个命令。我想知道是否有一种方法可以编写脚本并安排它在我重新启动 Tomcat 服务时运行。

我已将 tomcat 脚本设置为 systemd 服务。我正在使用 Cent OS 7 x64。

最佳答案

我已经能够通过创建另一个服务并将 Tomcat 服务的开始停止合并到新服务中来实现这一点。新服务充当包装服务,它首先启动 tomcat,然后在 tomcat 启动后立即执行我们需要运行的命令。

然后在停止时,它会停止 tomcat 并运行清理命令。

编辑:我找到了另一种在 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 启动后运行。

关于linux - 如何在特定 systemd 服务重新启动时触发自定义脚本运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37628491/

相关文章:

c++ - 在 64 位 Linux 上编译 32 位 Qt - fatal error : gnu/lib-names-32. h

linux - Ubuntu 10.04 LTS Cron 作业不工作

c - 在 mtd block 设备上写入

python - 如何通过Python在计算机终端运行命令

linux - 如何在 Linux 汇编中创建文件

docker - 在centos 7 docker上的cron(和systemd)

linux - fork 服务一启动就重新启动?

linux - Debian Cron Job VLC REPEAT 如何停止它

linux - 停止时自动重启tomcat的shell脚本

service - 在特定服务之后启动systemd服务?