ポートを使用中のプロセスを特定する
MacのDockerで80番ポートを使おうとしたら使用中だった。試しにlocalhostにアクセスしたら It works! なる表示が出た。どうもapacheが建っているみたいだ。 使用していたMacは複数人に渡って受け継がれてきたもので誰かがapacheを動かしていてもおかしくない。
80番ポートを使用しているプロセスを表示
$ sudo lsof -i:80 | grep LISTEN httpd 110 root 4u IPv6 0x**************** 0t0 TCP *:http (LISTEN) httpd 374 _www 4u IPv6 0x**************** 0t0 TCP *:http (LISTEN) httpd 1470 _www 4u IPv6 0x**************** 0t0 TCP *:http (LISTEN) httpd 1471 _www 4u IPv6 0x**************** 0t0 TCP *:http (LISTEN) httpd 1472 _www 4u IPv6 0x**************** 0t0 TCP *:http (LISTEN)
やはりhttpdが使っている。
httpdのプロセスを確認
$ ps -ax | grep httpd 110 ?? 0:00.46 /usr/sbin/httpd -D FOREGROUND 374 ?? 0:00.03 /usr/sbin/httpd -D FOREGROUND 1470 ?? 0:00.00 /usr/sbin/httpd -D FOREGROUND 1471 ?? 0:00.00 /usr/sbin/httpd -D FOREGROUND 1472 ?? 0:00.01 /usr/sbin/httpd -D FOREGROUND 1671 ttys001 0:00.00 grep httpd
/usr/sbin/httpd、どうもMac標準のapacheが動いているみたい。
自動起動の設定の確認と解除
確認
$ sudo launchctl list | grep httpd 110 0 org.apache.httpd
解除
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist