以前より、httpdにかかわる不具合があったのだが、原因がわからないまま、その都度、以下のように小手先の処置を行っていた。
httpd起動時の不具合
これまでの対応
① systemctl stop httpdを行ってからUPDATEを実行。UPDATE後はsystemctl restart httpdを2回ぐらい実行すると、起動する。
➁ それでもだめならlsof -i | grep httpdでhttpdのプロセスIDを確認し、kill -9 プロセスIDでプロセスを削除する。
「Webサーバーが起動しない」のは、自宅サーバー、我流サーバーの場合はあり得る話です。
週末はサーバーの電源を落とす社内サーバーなども、週明け月曜日になるとWebサーバーやファイルサーバーが起動しないなんてことは、たまにあります。
レンタルサーバーであれば、Webサーバーが起動しない=blogやホームページが見れない!
なんてことは、まずあり得ない事です。
【PR】
根本的な対応を見つけた
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
● 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.serviceがfailed (失敗)している。その上の行の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
~中略~
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.
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
● 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
コメント