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、管理者、または別のユーザーが所有する場合は、コマンドの前に sudo を付ける必要があります:
sudo kill-9 8384
ここで使用されている lsof コマンドは価値があるものです。は Mac に焦点を当てていますが、Linux でも同様に機能します。
あなたがコマンド ラインについてある程度の知識があることを前提としていますが、もちろん、そうでない場合は、そもそもここに来ないか、何がポートを使用しているのか、何がポートをロックしているのかを心配している可能性があります。
これを行うには他にも方法がありますが、ここでは明らかに lsof コマンドを使用しています。これは非常に強力で、TCP ポートでリッスンしているものやアプリを見つけるためにも使用できます。または、プロセスが特定のファイルと対話している場合、インターネット接続を使用してすべてのプロセスを検索している場合などです。
どのプロセスが特定のポートをロックしているか使用しているかを判断する別の方法はありますか?以下のコメント欄で、これに対する独自のアプローチを共有してください。