2012年7月9日月曜日

Address already in useとなったときの対処法[Mac/Eclipse/GAE]


Eclipseのアプリケーションサーバを停止できなくなったときの対処法。

EclipseでGAE開発とかしていると、アプリケーションサーバが異常終了するときがあります。

その際Eclipse上では停止しているように見えるけど、実際にはポートがlistenになっていて、新規に立ち上げることも停止することも出来なくなります。


そのような挙動になったときの対処法を備忘録として残しておきます。

使ってるポート番号が8080の場合で説明します。

1. ポートを利用しているプログラムのPIDを調べる

%>lsof -i:8080

するとこんな結果が返ってくる。

COMMAND  PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Python  1592 admin    7u  IPv4 ********      0t0  TCP localhost:http-alt (LISTEN)

PIDの所をみると1592と書いてあり、これによりプロセスID(PID)が1592とわかる。


2.プロセスを殺す

%>kill 1592

プロセスが死んだので、listen状態のポートも解放される。

これでEclipseからアプリケーションサーバが立ち上がるようになります。