Socket
Unix 域套接字中斷的可能場景
使用
TCP
&UDP
sockets時,有很多場景會導致連接中斷(連接慢、網路重置等)。unix domain socket
是否存在由於外部原因而自動斷開或中斷的任何可能情況?開發人員是否應該考慮程式碼中可能出現的中斷?
無論使用何種類型的套接字或 IPC 機制,伺服器總是有可能意外終止。它可能由於許多不同的原因而發生,例如:
- 它可能由於軟體錯誤而崩潰,因為由於分段錯誤或斷言失敗
- 它可能會佔用太多記憶體並且可能被 Linux OOM 殺手殺死(它很容易在虛擬機中重現)
- 它可能被另一個使用者錯誤地殺死。Linux 是多使用者系統,有人可能會意外殺死您的程序,比如他們想輸入
kill 1112
但輸入kill 1111
了開發人員是否應該考慮程式碼中可能出現的中斷?
是的,他們總是應該的。閱讀您將要使用的函式的手冊頁,並閱讀該函式可以設置的所有可能的 errnos 值,並始終為最壞的情況做好準備。