httpdを再起動できずに失敗する。他プロセスがポートを占有しているようなので調べてみた。

httpdを再起動できずに失敗した。他プロセスがポートを占有しているようなので調べてみた。

Service httpd restart

- スポンサードリンク -

 

ざっくり言うと!!

 

  • エラーでWebサーバーを再起動できない。
  • "(98)Address already in use"というエラーだ。
  • 古いプロセスを終了すると再起動できる。

 

常時SSL化、証明書再発行でhttpdを再起動!あれ?エラー?

このサイトはサイトURLを見ていただくとおりhttps化しています。
(SSL化や暗号化といわれています。)

 

Let's Encryptで常時SSL化していますが、90毎に証明書を再発行する必要があります。
今回、再発行の時期が来たので、コマンドでちょい、ちょい。

 

とやってみたら、エラーが。

 

httpdの環境はApacheだ

 

httpd -vコマンドでみてみるとわかるが、

Apache2.2ですね。

 

 

# httpd -v

Server version: Apache/2.2.15 (Unix)

Server built:   Jun 19 2018 15:45:13


 

httpdを再起動できない。現象は?

# service httpd start 

httpd を停止中:           [  OK  ]

 

httpd を起動中: (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80

no listening sockets available, shutting down 

Unable to open log     [失敗]

 

 

 どうやら、(98)Address がすでに使われているので起動できないよ。
みたいなことを言われている。
 

 

どうやらWebサーバ再起動の失敗原因は古いプロセスらしい。

調べてみたら、古いプロセスが残っているので再起動ができないらしい。
  • (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
(98)アドレスが使われている。
  • no listening sockets available, 
ソケットが有効ではない。
  • shutting down
シャットダウンした。

と、どうやら古いプロセスが原因らしい。
 

対策事項

古いプロセスを見つけて、終了させる。
環境によるが、psコマンドがいいとおもう。
  • ステップ1: psコマンドで古いhttpdプロセスを探す。

    ps aux|grep http


    apache   15879  0.0  0.4 404260  8488 ?        S    04:15   0:00 /usr/sbin/httpd

    apache   15881  0.0  0.3 404260  7972 ?        S    04:15   0:00 /usr/sbin/httpd

    apache   15883  0.0  0.3 404260  7972 ?        S    04:15   0:00 /usr/sbin/httpd

    apache   15885  0.0  0.3 404260  7972 ?        S    04:15   0:00 /usr/sbin/httpd

    apache   15890  0.0  0.3 404260  7972 ?        S    04:15   0:00 /usr/sbin/httpd


    apacheにつづいて15879とかプロセス番号がある。


  • ステップ2: 古いプロセスを終了する。
    killコマンドで古いプロセスを終了する。

    この番号を指定して終了させよう。

# kill -9 15879

# kill -9 15881

# kill -9 15883

# kill -9 15885

# kill -9 15890


  • ステップ3: httpd(Webサーバー)を再起動する。

    # service httpd start

    httpd を起動中:                                            [  OK  ]

 
無事に立ち上がったと思います。
  

まとめ

コマンド系では、エラーが出ると焦るし、
どうしようか、一瞬だけパニクるときがありますね。

 

コマンドになれていないのでなおさらです。

ただ、今では、検索するとほとんどの原因がわかるので、
焦らずに、検索をして原因を見つけましょう。

 

今回紹介した、コマンドのpsは

  • lsof
  • netstat

などでも代替えができます。

 

今回は、以上になります。

閲覧いただいてありがとうございました。

 

このサイトは、リンクフリーです。

 

もし、気に入っていただけましたら、
SNSやみなさまのブログなどでご紹介ください。

その際は、このアドレスをそのまま貼っていただけると
うれしいです。

  

また、いいね!やシェアしてもらえるとうれしいです。

では。

 

 

今回の紹介するアプリ。

 

特になし。

 
 

今回の紹介する製品。

 

特になし。 

 

 

関連サイト

下記のサイトを参照させていただきました。
 

他プロセスがポートを占有してhttpdを再起動できない - Qiita

# 現象

httpdを再起動しようとすると、`Address already in use`と言われ再起動できない。

```bash $ sudo /etc/init.d/httpd restart httpd を停止 ...

qiita.com

 

ブログランキング


インターネット・コンピュータランキング

- スポンサードリンク -

こちらの記事も一緒に読まれてます。