以下を介してソケットに接続しますnc -U
。
user@node:~$ sudo nc -U service\@name.18822.sock
user@node:~$ xmpp.status
user@node:~$ connected
この接続を長時間開いたままにしておくと、CLIに戻って新しいソケットが作成されます。次のようにコマンドをソケットにエコーすると:
echo xmpp.status | sudo nc -U service\@name.18822.sock
これにより、新しいソケットは作成されません。プロセスにあまり関係がなく、Unix / Linuxの内部に近いと思うので、これらの動作が存在する理由は疑問に思います。
答え1
Unixソケットには自動的に接続を閉じる機能はありません。サーバーまたはクライアントはそれを閉じる必要があります。 Netcatに-w
記載されているオプションがあります。手動:
接続と stdin がタイムアウト秒より長くアイドル状態の場合、接続は自動的に閉じます。 -w フラグは -l オプションには影響しません。つまり、nc は -w フラグがあるかどうかにかかわらず、常に接続を受け取ります。デフォルトはタイムアウトなしです。
ただし、このオプションは指定されていないため、netcatはデフォルトで無期限に接続を開いたままにします。
多くのサーバーが接続に対して暗黙のタイムアウトを設定します。これは、誤って作成されたクライアントがリソースを噛むのを防ぐためです。または、接続しているサーバーがリセットされている可能性があります。これにより、すべての接続が閉じられます。
あなたの質問によると、このポートが正確に何であるかわかりません。しかし、簡単に言えば、これはLinux / Unixの問題ではなくxmppの問題です。