◆どのプログラムがポートを占有してるの?
事の経緯はこう。何気なく Apache を立ち上げようとしたら、こんなエラーが!
(OS 10048)通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、またはポートのどれか 1 つのみを使用できます。 : make_sock: could not bind to address 0.0.0.0:80 no listing sockets available, shutting down
あれ? Apache は今まだ起動していないはずなのに、何かのプログラムがポート 80 を占有している?
そんな時に役立つのが netstat のオプション。【 -o 】を使えば、どのプログラムがポート番号を使っているのか、一覧で表示してくれる。
早速【 netstat -ano 】を実行。
C:\WINDOWS\system32>netstat -ano Active Connections Proto Local Address Foreign Address State PID TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1884
ココを見ると、ポート80を占有しているのは PID 1884 のプログラムだ。
で、ここで PID 1884 を何が使っているかを見るには【tasklist】を使う。
【tasklist /svc /fi "PID eq 調べたいPID番号"】という書式。早速入力すると、
C:\WINDOWS\system32>tasklist /svc /fi "PID eq 1884"
Image Name PID Services
========================= ====== =============================================
Skype.exe 1884 N/A
このように出てきた!スカイプがポート80を使っていたらしい。
まぁ、とりあえずスカイプを終了させて、無事 apache を起動することができた(`・ω・´)