看门狗用凭据启动我的进程

看门狗用凭据启动我的进程

我有一台需要某些凭据才能启动的服务器。目前,服务器读取key-value pair file这些凭据。我正在寻找一些实际上可以避免的使用key-value pair file

该组件应该:

  • 将密码缓存在密钥环中
  • 使用密钥环中的正确凭据启动我的服务器
  • 如果我的服务器停止/终止,请重新启动它

最初启动或重新启动此组件时,可以提示用户输入不同的密码。但是,如果我的服务器进程重新启动,它不应该提示。

我正在阅读有关看门狗和 systemd 的内容。Systemd unit files有点适合我的需要,但我找不到一种方法来存储和检索密钥环中的凭据。

更新:我还在阅读有关systemd-ask-password缓存我的密码的内容。但是,它似乎只会缓存密码 2.5 分钟。我想缓存它直到设备停止/重新启动。

更新2:我所说的服务器是指我的服务器进程。在机器重新启动时提示输入密码是可以的。

答案1

它似乎systemd-ask-password做了你想要的大部分事情,除了密钥过期之外,这是硬编码的2.5 分钟后,您自己发现:

#define KEYRING_TIMEOUT_USEC ((5 * USEC_PER_MINUTE) / 2)

一种选择是您构建自己的询问密码程序,将其存储在内核密钥环中较长时间(或者可能无限期)。您甚至可以将systemd-ask-password其用作它的起点。您可以从您所在单位致电此类代理ExecStartPre=。 (当然,一种可能的选择甚至是将其构建到主程序本身中,因为它将访问密钥环以获取密码,如果找不到密码,它可能会在此时提示。)

另一种选择是建议对systemd-ask-password上游 systemd 本身进行修改,默认保留 2.5 分钟到期时间,但引入额外的命令行参数以允许调整该到期时间,这将使其可用于您的特定用例。

相关内容