K-ledges / ナレジズ

by ケープロジェクト

Address already in use 発生時の対処方法

Pocket
LINEで送る

Linuxサーバーで各種サービスを起動する際に発生するエラーで「Address already in use」といったエラーメッセージが表示され対象サービスが起動しない現象が発生することがあります。
これは、起動しようとしているサービスで使用するポートを既に他のサービスやプロセスで使用してしまっている時に発生します。
今回、この現象についての対応方法についてまとめてみました。

「Address already in use」発生時の状況について

この現象が発生したLinuxサーバーでは、メールサーバーを稼働させており、受信メールサーバーでは、dovecotを使用していました。
サーバーのメンテナンスを行い、再起動して各種サービスの稼働状況を確認したところ受信メールサーバーのみ起動していないことがわかりました。
手動で起動させようとしたところ、下記のようなメッセージが表示されdovecotが起動できませんでした。

Error: service(pop3-login): listen(, 110) failed: Address already in use Error: service(pop3-login): listen(, 995) failed: Address already in use
Error: service(imap-login): listen(, 143) failed: Address already in use Error: service(imap-login): listen(, 993) failed: Address already in use
Fatal: Failed to start listeners

対象のポートを使用しているプロセスの確認

通常、このような現象が発生した場合には、対象となるポート(今回のケースでは、110、995、143、993となります。)を使用しているプロセスを下記のコマンドで確認します。

lsof -i :ポート番号(110など)

このコマンドで得られた情報からPIDのプロセスをkillコマンドで落として対応します。

kill プロセス番号(PIDを指定)

対象のポートが特定できなかった時の対応

しかし、今回、「lsof」コマンドでは何も結果が得られず、対象プロセスが存在していないことがわかりました。
直前のメンテナンスで行った履歴を確認すると「portreserve」なるサービスがインストールされている事がわかりました。
この「portreserve」は、意図していないプロセスを文字通りポートを占有しておいて起動させないためのサービスとなります。
「portreserve」の設定ファイルの設置ディレクトリを確認すると、「dovecot」とうファイルが配置されており、起動させないように予約されていました。

/etc/portreserve

「portreserve」の停止と「dovecot」の起動

起動している「portreserve」をを下記のコマンドで停止します。また、自動で起動しないように「chkconfig」コマンドも実行します。

# /etc/init.d/portreserve stop
# chkconfig portreserve off

次に「dovecot」を起動します。

# /etc/init.d/dovecot start

発生した環境について

今回、このような事象が発生した環境はAmazon Linux(amzn1)になります。取り急ぎこのような対応を行いましたが、最終的に「portreserve」の設定ファイル内を下記のようにコメントアウトして「portreserve」を起動させました。

#imap/tcp
#imaps/tcp
#pop3/tcp
#pop3s/tcp
#sieve/tcp
# /etc/init.d/portreserve start
# chkconfig --level 2345 portreserve on

今回のような現象は、これまでに経験が無く「lsof」コマンドで解決できていたので非常にあせりました。
直前のメンテナンスで「yum」によるサービスの更新を行っていたので、「yum.log」から見慣れない「portreserve」を発見し、AWSのフォーラムで同様の現象で悩んでいる方を発見して対応できました。

参考にしたフォーラム
https://forums.aws.amazon.com/tags/portreserve

Pocket
LINEで送る

システム開発・IT支援のご相談お受けいたします

社内ネットワーク環境の構築から、DX導入まで、中小企業のIT化を支援いたします。

ケープロジェクトに問い合わせる