acme.sh 自动更新后 Nginx 启动失败

警告
本文最后更新于 2022-04-19,文中内容可能已过时。

起因如上.

手动更新了一下之后, 发现还是没装上. 一看日志, 原来是之前改了路径, acme.sh 没改. 改过来以后再试了一下 renew, 结果, 报错了, 说 nginx 没有启动, 不能 force-reload.

这不由得让人联想到之前冯佬说我博客挂了, 我发现 nginx 莫名其妙挂掉了找不到原因. 了解了 acme.sh 的自动更新是使用 cron 执行 renew 后, crontab -l 看了一眼:

53 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

好家伙, 60 天到期, 53 天的时候更新, 一看聊天记录, nginx 7 天前挂的. 水落石出了.

搜了一圈, 没搜到为啥. 就自己想了个解决方法, crontab -e 编辑, 在 acme.sh renew 完之后重启一下 ngxin:

53 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null; systemctl stop nginx.service; systemctl start nginx.service