netstat -tulpnw
Linuxでは、次のようにps
使用できます。
# netstat -tulpnw | grep :53
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1482/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 1482/named
# ps aux | fgrep 1482
named 1482 0.0 1.0 93656 44900 ? Ssl Sep06 3:17 /usr/sbin/named -u named
root 20221 0.0 0.0 4144 552 pts/0 R+ 21:09 0:00 fgrep --color=auto 1482
#
ksh
AIX 6で使用するときに、ポートにバインドされたプログラムのフルパスをどのように取得しますか?
答え1
〜のようにIBM が推奨:lsof -i -n
ポートXYを使用して検索します。で解析可能な出力が必要な場合は、lsof
この-F
フラグを使用してawkを使用して出力を解析します。
あなたは得ることができますAIX V5用のプリコンパイル済みバイナリ。 V6用にプリコンパイルされたバイナリがあるかどうかはわかりません。そうでない場合はダウンロードしてください。源泉そしてそれをコンパイルします。
答え2
netstat
と一緒に試してみてくださいrmsock
。
port=$1
addr=`netstat -Aan | grep $port | awk '{print $1}`
pid=`rmsock $addr tcpcb | awk '{print $9}'`
ps -ef | grep $pid
の場合、netstat
ソケット-A
に関連するプロトコル制御ブロックのアドレスを表示し、この-a
オプションはサーバープロセスの状態を含むすべてのソケットの状態を表示し、この-n
オプションは解析に時間を無駄にしないように数値形式で出力を提供します。住所
rmsock
、出力の列1で指定されたアドレスを使用netstat
し、tcpcb
データベースを使用すると、pidや名前を含むソケットを保持するプロセスに関する情報が返されます。
ps -ef | grep $pid
その後、を使用してプロセス情報を取得できます。
あなたは見ることができますこの記事これについて詳しくは、IBM Systems Magazineを参照してください。
答え3
アプリケーションがロックされたポートを探す最速の方法の1つは、次を使用することです。ラソフまたはlsof64:
lsof64 -nP | grep $PortNumber
または
lsof -nP | grep $PortNumber
上記は、指定されたポート番号をロック/使用するプロセスIDを返します。一度お持ちの場合は、以下を実行して実行中のアプリケーション/プロセスを見つけます。
proctree $pid
答え4
netstat -ape | grep $PortNumber