如何在特定系统服务重新启动时触发自定义脚本

时间:2016-06-04 09:13:07

标签: linux cron systemd

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

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

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

1 个答案:

答案 0 :(得分:2)

我已经能够通过创建另一个服务并在新服务中整合Tomcat服务的启动停止来实现这一目标。新服务充当包装器服务,首先启动tomcat,然后在tomcat启动时执行我们需要运行的命令。

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

编辑:我在unix& amp;上找到了另一种方法。 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启动后运行。