・当ブログはアフィリエイト広告を利用しています。

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

CentOS
この記事は約5分で読めます。
以前より、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でプロセスを削除する。

 

「Webサーバーが起動しない」のは、自宅サーバー、我流サーバーの場合はあり得る話です。

週末はサーバーの電源を落とす社内サーバーなども、週明け月曜日になるとWebサーバーやファイルサーバーが起動しないなんてことは、たまにあります。

レンタルサーバーであれば、Webサーバーが起動しない=blogやホームページが見れない!

なんてことは、まずあり得ない事です。

【PR】

自宅サーバーの運用に疲れた方、システムダウンが心配な方、稼働率の向上に!

WordPress(ブログ)を短期間で立ち上げ・運用するならレンタルサーバー!

根本的な対応を見つけた

systemctlのstatusでState: degradedになっている

上記とは別件だと思っていたのだが、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

State: degraded ➡ State: running に変わって改善された

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

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


フォロー

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

まとめとポイント

ご注意:サーバーの設定は人それぞれです。当方の設定が特殊な可能性もあります。
上記対応をした際、問題が発生したとしても当方は責任を持てませんのでご了承ください。

注意:当方と条件が異なる場合は、参考にとどめてください。 
状況確認

#systemctl status で State: degraded の場合、httpdのサービスが2重起動している可能性が高い。

対応

# systemctl disable httpd24-httpd.service 

コメント

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