同じプロセスを受け取るように両方のプロセスを設定するとどうなりますか?バークレーアウトレット?
メッセージは両方の場所にルーティングされますか?どれでもない?どちらか?それでは、どうすればいいですか?
特に、gunicorn
同じパスを使用して両方のプロセスを開始でき--bind unix:
、明らかなエラーは発生しません。
gunicorn --bind=unix:/path/to/some/socket
SEや他の場所では明確な答えが見つかりませんが、非常に簡単な質問のようです。
ベストアンサー1
2つのプロセスできない同じUnixソケットにバインドして受信します。既存のUNIXソケットにバインドしようとするプロセスはEADDRINUSE
エラーを受け取ります。
特に、同じ --bind unix:/ を使用して 2 つの gunicorn プロセスを開始できますが、明らかなエラーは発生しません。
プロセスがgunicorn
バインドする前に実際にソケットファイルを削除する可能性が高いため、結局バインディングは終了します。その他Unixソケット。
Unixソケットの実際のアドレスはアクセスパスdevice_id:inode
ではなくタプルであることを覚えておいてください。 Unixソケットを削除すると、同じパスにバインドされたプログラムは最終的に異なるinodeを持つ別のソケットファイルを生成します。
注:これはすべて「一般」ファイルシステム常駐Unixソケットに適用されます。 Linuxにもあります抽象的なソケット名が物理アドレスであり、どの種類のファイルシステムオブジェクトも使用されないUnixソケット。この場合、2つのソケットを同じアドレスにバインドすることはできません。