让 certbot 等待另一个实例
make certbot wait for another instance
我在这里要做的是:我有一个由定时器控制的 systemd 服务,它处理 letsencrypt 证书的续订。这些证书应该如何显示在配置文件中。
[Unit]
Description=Let's Encrypt renewal
[Service]
Type=oneshot
Environment=CONFIG_FILE=/etc/letsencrypt/test.conf
ExecStart=-/usr/bin/certbot renew --quiet --agree-tos --noninteractive --no-random-sleep-on-renew
续订运行一些 post 处理脚本,确保部署和安装证书。
如果配置在证书生成和上次更新之间发生变化,这些脚本将找不到预期名称下的证书。然后脚本会自动触发另一个脚本以确保证书已创建:
if [[ ! -d /etc/letsencrypt/live/${CERT_NAME} ]]
then
#certificate folder we expect isn't there , request a new cert
. /etc/letsencrypt/renewal-hooks/request-new-cert.sh
fi
我遇到的问题是在执行 request-new-cert.sh 期间出现错误 Another Instance of Certbot is already running
,导致脚本失败。
我做错了吗?有没有更好的方法来尝试实现我想要做的事情?
解决方案一:
您需要终止其他 certbot 进程。
您可以通过重新启动盒子或终止特定进程来做到这一点。
要找到 certbot 进程,请尝试:
ps -ef | grep certb
进程 ID 将是用户之后的第一个数字,例如:
root 5555 5100 …
要终止进程,请尝试:
kill 5555
注意: 将 5555 替换为您实际的 certbot PID#
方案二:
如果不是运行,请检查您的系统中是否有.certbot.lock个文件。
find / -type f -name ".certbot.lock"
如果有,您可以删除它们:
find / -type f -name ".certbot.lock" -exec rm {} \;
然后重试。
我在这里要做的是:我有一个由定时器控制的 systemd 服务,它处理 letsencrypt 证书的续订。这些证书应该如何显示在配置文件中。
[Unit]
Description=Let's Encrypt renewal
[Service]
Type=oneshot
Environment=CONFIG_FILE=/etc/letsencrypt/test.conf
ExecStart=-/usr/bin/certbot renew --quiet --agree-tos --noninteractive --no-random-sleep-on-renew
续订运行一些 post 处理脚本,确保部署和安装证书。
如果配置在证书生成和上次更新之间发生变化,这些脚本将找不到预期名称下的证书。然后脚本会自动触发另一个脚本以确保证书已创建:
if [[ ! -d /etc/letsencrypt/live/${CERT_NAME} ]]
then
#certificate folder we expect isn't there , request a new cert
. /etc/letsencrypt/renewal-hooks/request-new-cert.sh
fi
我遇到的问题是在执行 request-new-cert.sh 期间出现错误 Another Instance of Certbot is already running
,导致脚本失败。
我做错了吗?有没有更好的方法来尝试实现我想要做的事情?
解决方案一:
您需要终止其他 certbot 进程。 您可以通过重新启动盒子或终止特定进程来做到这一点。 要找到 certbot 进程,请尝试:
ps -ef | grep certb
进程 ID 将是用户之后的第一个数字,例如:
root 5555 5100 …
要终止进程,请尝试:
kill 5555
注意: 将 5555 替换为您实际的 certbot PID#
方案二:
如果不是运行,请检查您的系统中是否有.certbot.lock个文件。
find / -type f -name ".certbot.lock"
如果有,您可以删除它们:
find / -type f -name ".certbot.lock" -exec rm {} \;
然后重试。