SSブログ

apachectl gracefulは万能ではなかった [Linux]

TLS用のサーバ証明書の更新で、会社の各部署に断りを入れていたんだけど、こっちが失敗してhttpdを落とさない限りは別にそれは必要なかった。でも、それまでに何かしら問題があって短い間だけど、Webサーバを落としていたから、その間は止まるかもしれないよと断りを入れるほかなかった。

上司からapacheならgraceful restartがあるんじゃね?と言われて、ほうほう、そんなものがあるのかと調べてみた。
https://spirits.appirits.com/doruby/8913/
確かに動かない時は、それまでのプロセスで動いてくれそうな感じはした。でも、実際にやってみないとわからないからやってみた。

まずサーバ証明書関係のファイルをリネームして、必要なファイルがない状態にした。
# apachectl graceful
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.

あれ?httpdが落ちたのかな?と思ったら落ちていなかった。gracefulは効いている模様。

次にファイル名は設定どおりにして、crtファイル(サーバ証明書)だけを新しくしてみて、keyファイルと齟齬がある状態にして
apache graceful

してみた。何もエラーが出ない。でもhttpdが落ちてた…。何事よ?
crtファイルを元に戻してapache gracefulをすると、デーモンがないよと怒られる。そりゃそうか…。
Job for httpd.service invalid

そうね、普通にsystemctl start httpd しないとあかんね。
それで元に戻った。apache gracefulはhttpd -t以上の事をしてくれているみたいだけど、サーバ証明書とキーファイルの中身の齟齬があって立ち上げられない、とかには対応できないみたい。

設定のファイル名が違って読み込めないとかならチェックが効くけれども、それ以上の事はチェックできないようだ。まぁそこまで面倒見てくれないとは思っていたけど、ちょっと期待していた。間違えないようにして一発勝負ってのは変わらなかった。


・おまけ
なんかapachectl gracefulでエラーが出ないのも嫌だなと思っていた。
https://ex1.m-yabe.com/archives/5120
systemctl reload httpd でいいらしい。
たぶんこれだとデーモンが立ち上がらない時はエラーが出るんじゃないかな?

コメント(0) 
共通テーマ:パソコン・インターネット

コメント 0