OS Xの特定のポートでリッスンしている特定のプロセスのPIDがあり、プロセスがリッスンしているポートを知る必要があります。どうすればいいですか?
私はこれを使用してlsof
どのプロセスが特定のポートでリッスンしているかを知ることができますが、その逆も実行する必要があります。
ありがとうございます。
UPD
netstat
OS XはBSDユーティリティを使用しているため、Linuxの代わりにBSDを使用してくださいnetstat
。 LinuxにはPIDを表示するオプションがnetstat
あります。-p
BSDは特定のポートをnetstat
使用し、-p
PIDを表示するオプションはありません。
ベストアンサー1
私は追加の読書を通して自分で解決策を見つけましたman lsof
。 (はい、RT * Mはまだ助けになります。)目指してくれた@Gillesに感謝します。
解決策は次のとおりです。 lsof -aPi -p 555
(555はPIDです。)
説明する:
-p
PID番号を指定してください。-i
ネットワークデバイスのみを表示します。-a
上記の2つの条件をANDにします(それ以外の場合はOR演算が実行されます)。-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でも動作します。