現在開いているすべての抽象UNIXソケットを一覧表示するコマンドはありますか?

現在開いているすべての抽象UNIXソケットを一覧表示するコマンドはありますか?

現在開いているすべての抽象Unixソケットを一覧表示するコマンドまたはシステムコールはありますか?

修正するnetstat -x:一部の人は理論的には機能しますが、抽象ソケットの名前はリストせず、パスのある名前だけをリストするを使用することを提案しました。

bash-5.0$ netstat -xeW
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ]         STREAM     CONNECTED     3959158
unix  2      [ ]         STREAM     CONNECTED     3961068
unix  3      [ ]         STREAM     CONNECTED     3965008
unix  3      [ ]         STREAM     CONNECTED     3967192 /run/spire/writable/agent.sock

答え1

抽象ソケット

パス名はNUL文字で始まるため、パスの長さは0になります。残りの107文字を使用して、他のプログラムが接続するために使用できる一意の識別子を定義できます。ファイルシステムには表示されません。

ほとんどのUNIXには、オープンファイルリスト(lsof)コマンドが付属しています。そうでない場合は、簡単に追加できます。

lsof -U

upowerd   1604       root    5u  unix 0xffff88005af5f400      0t0 18631 type=STREAM
colord    1614     colord   10u  unix 0xffff880034d3f400      0t0 18170 type=STREAM
systemd   2009       root   13u  unix 0xffff88005a293000      0t0 21213 /run/user/0/systemd/notify type=DGRAM
systemd   2009       root   14u  unix 0xffff88005a293c00      0t0 21214 /run/user/0/systemd/private type=STREAM

Linuxでは、抽象名前空間パスを表示すると、nullバイトが@に変換されます。以前のツールバージョンでは、ゼロバイトを正しく処理できない可能性があります。

upstart   1525    lightdm    7u  unix 0xffff880034b99800      0t0 17301 @/com/ubuntu/upstart-session/111/1525 type=STREAM

システム上のすべてのUNIXドメインソケットを一覧表示できます。

「ss」コマンドは、ソケットと抽象ソケットを表示することもできます。同様に、抽象ソケットには@プレフィックスが付いています。

頑張ってください!

関連情報