
Macでポートをロックしているプロセスを見つける方法
Macユーザーは、あるプロセスがポートをロックし、他のアプリやプロセスがそのポートを使用できない状況に遭遇することがあります。例えば、React.jsを使用しようとしていて、既にポート3000で何かが実行中であることがわかった場合など、このような状況に遭遇した場合、コマンドラインを使用することで、Mac上でどのプロセスがポートを使用しているかを簡単に追跡できます。
MacOS でポートをロックしているプロセスを見つけて終了する方法を紹介します。
Macでポートをロックしているプロセスを見つける方法
使用する構文は次のようになります。PORTNUMBER を、プロセスを検出するために使用するポート番号に置き換えます。
sudo lsof -i :PORTNUMBER
たとえば、ポート 445 を使用してプロセスを見つけるには、次のようにします。
sudo lsof -i :445
または、ポート 3000 を使用してロックしているプロセスを見つけるには:
sudo lsof -i :3000
Macでポートをロックしているプロセスを見つけて強制終了する方法
lsof コマンドの出力から PID (プロセス ID) を取得したら、アプリを終了するか、サービスをシャットダウンするか、そのプロセスを終了して、ロックされたポートを解放して解放することができます。
プロセスを強制終了する最も簡単な方法は、kill コマンドを使用することです。
kill -9 PID
たとえば、ポート 3000 を使用するプロセス ID が「8384」の場合、次のコマンド構文を使用します。
kill -9 8384
プロセスの所有者が root、admin、または別のユーザーである場合は、コマンドの前に sudo を付ける必要があります。
sudo kill -9 8384
ちなみに、ここで使用する lsof コマンドは Mac に重点を置いていますが、Linux でも同じように動作します。
ここでは、コマンドラインに関する知識を多少は持っているものと想定していますが、もちろん、そうでなければ、そもそもここに来ていないでしょうし、ポートの使用やロックについて心配することもないはずです。
これを行う方法は他にもありますが、ここでは明らかに lsof コマンドを使用しています。これは非常に強力で、TCP ポートでリッスンしているものを見つけたり、特定のファイルと対話しているアプリやプロセスを見つけたり、インターネット接続を使用しているすべてのプロセスを見つけたりすることもできます。
特定のポートをロックまたは使用しているプロセスを特定する別の方法はありますか? ぜひ、以下のコメント欄で、ご自身のアプローチを共有してください。