httpdの不具合はサービスの2重起動が原因だった!?

CentOS
この記事は約4分で読めます。
以前より、httpdにかかわる不具合があったのだが、原因がわからないまま、その都度、以下のように小手先の処置を行っていた。
スポンサーリンク

httpd起動時の不具合

・yum update でプログラム、OSのUPDATE後に100%に近い確率でhttpdの起動に失敗。
・httpdをSTOPしてからプログラム、OSのUPDATEを行ってもhttpdの起動に失敗することがある。

これまでの対応

① systemctl stop httpdを行ってからUPDATEを実行。UPDATE後はsystemctl restart httpdを2回ぐらい実行すると、起動する。

➁ それでもだめならlsof -i | grep httpdでhttpdのプロセスIDを確認し、kill -9 プロセスIDでプロセスを削除する。

根本的な対応を見つけた

上記とは別件だと思っていたのだが、systemctlのstatusでState: degradedがずーっと気になっていた。
# systemctl status
www-don-don-0am-jp
State: degraded
Jobs: 0 queued
Failed: 1 units
Since: 日 2019-09-22 11:53:50 JST; 18h ago
NETでいろいろ見ていると、サービスの状況を確認するコマンドがあり、確認してみるととhttpd24-httpd.servicefailed (失敗)している。その上の行のhttpd.serviceは成功している。
? ? ?
httpdを2個起動しようとしている。
最初にhttpd.service。次にhttpd24-httpd.serviceを自動起動しようとする。
しかし、httpdのプロセスIDが既に存存(exit=1)しているのでfailed The Apache HTTP Serverとなるのだろう。
#systemctl list-units
~中略~
gssproxy.service loaded active running GSSAPI Proxy Daemon
httpd.service loaded active running The Apache HTTP Server
● httpd24-httpd.service loaded failed failed The Apache HTTP Server
irqbalance.service loaded active running irqbalance daemon
iscsi-shutdown.service loaded active exited Logout off all iSCSI sessions on shutdown
kdump.service loaded active exited Crash recovery kernel armingq

ためしに、httpd24-httpd.serviceを自動起動しないように設定してみる。

# systemctl disable httpd24-httpd.service
Removed symlink /etc/systemd/system/multi-user.target.wants/httpd24-httpd.service.
再度状況を確認すると、Failed: 0 unitとなっている。
# systemctl status
● www-don-don-0am-jp
State: running
Jobs: 0 queued
Failed: 0 units
Since: 月 2019-09-23 07:10:17 JST; 3min 22s ago

果たして、httpd起動不具合の根本的解決になった?

たぶん、これで大丈夫だと思うのだが!


フォロー

以降、httpdは失敗することなく、正常起動するようになった

コメント

タイトルとURLをコピーしました