事象
crontabに
00 03 * * * /usr/bin/certbot renew --post-hook "systemctl restart httpd.service"
と書いて、Let’s Encrypt自動更新するようにしているが、
失敗していた。
手動で
/usr/bin/certbot renew --post-hook "systemctl restart httpd.service"
実行してみたが、失敗。
以下のメッセージを吐いた。
httpd (pid ~) already running
既に起動している…だと…?
原因
結局原因はわからずだった。
httpd -k start
で起動していたのではないか?
と疑った。
多分正解だったと思う。
対処
httpd -k stop && systemctl start httpd.service
を実行。
しかし、再度
httpd (pid ~) already running
のメッセージ出力。
↓
httpd -k stop
したが、既に停止していた。
↓
systemctl start httpd.service
でApache起動した。
↓
crontab に登録したLet’s Encryptの更新コマンドが正常に動くことを確認できた。
まとめ
apache の起動を
systemctl コマンド使って運用する場合は、
httpd -k start してはならない
別記事:Basic認証をかけている場合も失敗する
Basic認証をかけている場合も失敗する。その記事はこちら。
コメント