非模板 systemd 单元的多个实例

非模板 systemd 单元的多个实例

我在 CentOS 7 服务器上运行两个 PostgreSQL 实例,并且正在将 SysV 样式的 init 脚本转换为 systemd 单元。问题是 PostgreSQL RPM 附带一个单一的非模板服务单元文件。

据我所知,我必须在几个不愉快的选项中做出选择:

  1. 我可以使用已弃用的.include指令在 /etc/systemd/system 下创建两个自定义单元。当前的服务文件实际上建议用于.include自定义,但我知道该指令已被弃用,这意味着它将来可能会停止工作。
  2. 我可以复制单元文件,但是当最终原始单元文件得到更新但复制的单元文件没有更新时,我就会面临发散的风险。
  3. 我可以根据现有的单元文件创建一个模板,这意味着我的单元要么运行良好,要么运行不佳,但当上游单元文件更新时它们仍然不会更新。

有没有更好的办法?对于想要跑步的人来说,这似乎是一个常见的用例多个数据库服务器, 或者多个 SSH 守护进程, 或者多个http服务器在同一台机器上。

答案1

模板单元可能是最好的解决方案。这就是 Debian 软件包的配置方式——您可以从postgres-common来源并在必要时调整路径。单元文件确实不会随上游自动更新,但恐怕我没有办法解决这个问题。也许下一个主要版本会发布原生模板单元?

相关内容