【发布时间】:2023-04-08 23:42:01
【问题描述】:
我有一个系统服务foo,它通过/usr/sbin/service restart foo 启动和停止。它又似乎是由一个 shell 脚本控制的 /etc/init.d/foo
如何创建“预启动”挂钩,以便在此服务启动之前运行额外的 shell 脚本?在这种情况下,预启动挂钩是必须从云提供商元数据目录中获取的额外配置,然后插入到foo 正确启动所必需的配置文件中。
我考虑过直接修改/etc/init.d/foo,这样可行。但这会使预期的频繁补丁级别升级复杂化,我将通过apt-get upgrade 了解这些升级。我想避免需要重新建立钩子的解决方案。
第二种选择是我可以创建一个fooWrapper 服务,从所有运行级别中删除foo,然后启动/停止fooWrapper。该脚本的实现只是我的秘诀+调用/etc/init.d/foo。这样做的麻烦又是软件包升级,foo 是否会将自己重新插入到各种运行级别中,然后我最终会运行两个冲突的副本。
【问题讨论】:
标签: bash debian init.d debian-based