如何使用SIGHUP重新加载服务?

如何使用SIGHUP重新加载服务?

我已经安装了 Hachicorp Vault 并设置了 TLS 配置。我现在的目标是vault.service在 TLS 证书更新后自动重新加载。

官方文档状态:

tls_key_file (string: ,reloads-on-SIGHUP) – 指定证书私钥的路径。它需要 PEM 编码的文件。如果密钥文件已加密,系统将提示您在服务器启动时输入密码。使用 SIGHUP 重新加载配置时,密钥文件之间的密码必须保持不变。在 SIGHUP 上,Vault 启动时在此处设置的路径将用于重新加载证书;在 Vault 运行时修改此值对 SIGHUP 不起作用。

这是否意味着当发生更改时服务会自动重新加载tls_key_file?或者我应该添加额外的逻辑?

vault.service

[Unit]
After=network.service hostname.service consul-init.service consul.service
Description="Hashicorp Vault - A tool for managing secrets"
Documentation=https://www.vaultproject.io/docs/
StartLimitInterval=200
StartLimitBurst=5

[Service]
User=vault
Group=vault
PermissionsStartOnly=true
ExecStart=/usr/bin/vault server -config="{{vault_server_config_file}}"
ExecReload=/usr/bin/kill -HUP $MAINIP
CapabilityBoundingSet=CAP_SYSLOG CAP_IPC_LOCK
LimitNOFILE=65536
LimitMEMLOCK=infinity
Restart=always
RestartSec=30

[Install]
WantedBy=multi-user.target

答案1

Vault 告诉您 tls_key_file 文件名在启动后无法更改,并且如果您向其发送 SIGHUP,则可以重新加载证书内容。

如果单元重新加载,systemd 单元会发送 SIGHUP,这是重新加载信号的服务的常见模式。

需要额外的逻辑,因为 Vault 不会监控文件是否发生变化。我建议在安装证书后,在证书更新脚本中重新加载 vault.service。

相关内容