我想知道如何安排自定义脚本在我重新启动服务时运行。
我的用例是,每当我重新启动 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/