特定のPIDがどのポートをリッスンしているかをどうやって知ることができますか?

特定のPIDがどのポートをリッスンしているかをどうやって知ることができますか?

OS Xの特定のポートでリッスンしている特定のプロセスのPIDがあり、プロセスがリッスンしているポートを知る必要があります。どうすればいいですか?

私はこれを使用してlsofどのプロセスが特定のポートでリッスンしているかを知ることができますが、その逆も実行する必要があります。

ありがとうございます。

UPD

netstatOS XはBSDユーティリティを使用しているため、Linuxの代わりにBSDを使用してくださいnetstat。 LinuxにはPIDを表示するオプションがnetstatあります。-pBSDは特定のポートをnetstat使用し、-pPIDを表示するオプションはありません。

ベストアンサー1

私は追加の読書を通して自分で解決策を見つけましたman lsof。 (はい、RT * Mはまだ助けになります。)目指してくれた@Gillesに感謝します。

解決策は次のとおりです。 lsof -aPi -p 555(555はPIDです。)

説明する:

  1. -pPID番号を指定してください。
  2. -iネットワークデバイスのみを表示します。
  3. -a上記の2つの条件をANDにします(それ以外の場合はOR演算が実行されます)。
  4. -Pポート番号を表示します(デフォルトではポート名が表示されます)。

また、IPv4またはIP6アドレスを適切にlsof -aPi4 -p 555または1つだけ使用できます。lsof -aPi6 -p 55

他のプログラムから出力を解析する場合は、-Fnこのオプションが役に立ちます。このオプションを使用すると、lsof正しい形式の出力の代わりに「他のプログラムの出力」が生成されます。lsof -aPi4 -Fn -p 555次のような内容が出力されます。

p554
nlocalhost:4321

ポリスチレン 私はこれらすべてを私のOS X El Capitanでテストしましたが、私が理解したのはLinuxでも動作します。

おすすめ記事