syslog
これはsがシンボリックリンクソケットであるため、/dev/log
少なくとも1つの受信ソケットがあると予想されsystemd-journald
、おそらく異なる「ポート」番号を持ついくつかの異なる接続ソケットがあると予想されます。/run/systemd/journal/stdout
それがまさにそのことです。
リスニングソケット:
# ss -xpl | grep stdout
u_str LISTEN 0 4096 /run/systemd/journal/stdout 15240 * 0 users:(("systemd-journal",pid=254,fd=5),("systemd",pid=1,fd=38))
接続ペアの例:
# ss -xp | grep 19637
u_str ESTAB 0 0 * 20872 * 19637 users:(("dbus-daemon",pid=701,fd=2),("dbus-daemon",pid=701,fd=1))
u_str ESTAB 0 0 /run/systemd/journal/stdout 19637 * 20872 users:(("systemd-journal",pid=254,fd=73),("systemd",pid=1,fd=78))
しかし、の場合、dev-log
リスニングソケットがないようです。 systemd-journaldの単一のソケット( "port" = 15236)が複数のピアに接続されている次のセルフレコードでは、ソケットはESTABとしてマークされ、ピア "port"は0として表示されます。どうやってこれができますか?これに関して、UnixソケットがTCPソケットと比較して機能する方法に根本的な違いはありますか?
おそらく尋ねなければならないようです。出力のポート番号はss
Unixドメインソケットについて何を意味しますか?
# ss -xpl | grep dev-log
# ss -xp | grep dev-log
u_dgr ESTAB 0 0 /run/systemd/journal/dev-log 15236 * 0 users:(("systemd-journal",pid=254,fd=3),("systemd",pid=1,fd=36))
# ss -xp | grep 15236
u_dgr ESTAB 0 0 /run/systemd/journal/dev-log 15236 * 0 users:(("systemd-journal",pid=254,fd=3),("systemd",pid=1,fd=36))
u_dgr ESTAB 0 0 * 19250 * 15236 users:(("dbus-daemon",pid=369,fd=14))
u_dgr ESTAB 0 0 * 101364 * 15236 users:(("su",pid=4448,fd=3))
u_dgr ESTAB 0 0 * 22068 * 15236 users:(("gdm",pid=373,fd=13))
u_dgr ESTAB 0 0 * 20801 * 15236 users:(("(sd-pam",pid=692,fd=8))
u_dgr ESTAB 0 0 * 21686 * 15236 users:(("dbus-daemon",pid=701,fd=10))
u_dgr ESTAB 0 0 * 19589 * 15236 users:(("gdm-session-wor",pid=680,fd=9))
u_dgr ESTAB 0 0 * 104580 * 15236 users:(("sudo",pid=4447,fd=8))
u_dgr ESTAB 0 0 * 14305 * 15236 users:(("polkitd",pid=450,fd=10))
u_dgr ESTAB 0 0 * 23001 * 15236 users:(("gnome-session-b",pid=727,fd=17))
答え1
ファイルはUnixデータグラム/dev/log
です。ストリーム(リスニングまたはUnixストリーム)u_dgr
のように「リスニング」する必要はありません。データグラムサーバーにはソケット/バインド/受信呼び出しシーケンス(およびそれ以上)のみが必要ですが、ストリーミングサーバーはソケット/バインド/受信/受け入れ(およびそれ以上)を実行する必要があります。u_str
/run/systemd/journal/stdout
これに関して、UnixソケットがTCPソケットと比較して機能する方法に根本的な違いはありますか?
UNIXドメイン小川ソケットはTCPと同様に動作します。 UNIXドメインデータグラムソケットはUDPと同様に動作します。しかし、Unixドメインソケットにはパイプに似た側面があります。たとえば、Unixデータグラムソケットは、UDPなどのデータ損失や誤った配信の問題を経験しない傾向があります。ただし、受信(ストリームの場合)または受信しない(データグラムの場合)の側面は、Unixドメインソケットとインターネットソケットの間で同じです。
たぶん尋ねるべきだと思います。 ss出力のポート番号は、Unixドメインソケットについて何を意味しますか?
これはおそらく特定のソケットを識別するためにカーネルによって発明された魔法の整数であり、Unixドメインソケットはプロセス内にあるか(パイプなど)ファイルシステムを介して公開されるため、それほど重要ではありません。どちらの場合も、これを使用するためにドメインソケットのマジックナンバーを知る必要はありません。