![Linuxの特定のポートでどのサービスが実行されているのか、どうすればわかりますか? [コピー]](https://linux33.com/image/28189/Linux%E3%81%AE%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%9D%E3%83%BC%E3%83%88%E3%81%A7%E3%81%A9%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%8C%E5%AE%9F%E8%A1%8C%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%8B%E3%80%81%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%8F%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
私のLinuxシステムでweblogicサーバーを実行しようとしていますが、次のエラーが発生します。
ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
このエラーは、デフォルトでは8453のデバッガポートがすでに他のサービスで使用されていることを意味すると思います。特定のポート番号でどのサービスが実行されているかを確認するには?
PS:このコマンドを使用したがnetstat
すべてのポートを占有するすべてのサービスが表示されます。ここでは特定のポートにのみ興味があります。
答え1
2つの方法:
lsof -i :port -S
netstat -a | grep port
あなたはできますman lsof
またはman netstat
必要な情報を入手してください。port
検索したいポート番号に置き換えます。
答え2
fuser
以下を使用できますlsof
。
fuser 8453/tcp
lsof -i TCP:8453
さらに情報が必要な場合は、fuser
このフラグを使用することもできます-v
。例:fuser -v 8453/tcp
答え3
それが価値がある場合...使用しているバージョンnetstat
(特にGNU netstat
)に応じて、次のものを使用できます。
netstat -punta | grep <port>
これは、ESTABLISHED および LISTEN 状態の UDP および TCP 接続を表示し、UNIX ローカル・ソケットを無視します。最終結果は素晴らしい、きちんとした小さな結果セットです。
この-p
フラグは、ポートを使用するプロセスIDとプロセス名を提供します。
フラグ-u
にudpが表示されます。
この-n
フラグは数値アドレスに使用されます。
この-t
フラグはTCPを表示します。
-a
リスニングソケットと非リスニングソケットの表示
編集 - このコマンドは最新のELディストリビューションで置き換えss
られました。netstat
答え4
セントースから
/usr/sbin/lsof -i tcp:8453 (lsof -i protocol:port)
Ubuntuから
/usr/bin/lsof -i tcp:8453
あるいは、フィルタを使用してnetstatの結果を絞り込むこともできます。