apue上sigcld語義寫的有點不清楚,到底我們的系統是如何來處理sigcld訊號呢?
1.sig_dfl :預設的處理方式是不理會這個訊號,但是也不會丟棄子進行狀態,所以如果不用wait,waitpid
對其子進行進行狀態資訊**,會產生殭屍程序。
2.sig_ign :忽略的處理方式,這個方式和預設的忽略是不一樣的語意,暫且我們把忽略定義為sig_ign,
在這種方式下,子程序狀態資訊會被丟棄,也就是自動**了,所以不會產生殭屍程序,但是問題也就來了,
wait,waitpid卻無法捕捉到子程序狀態資訊了,如果你隨後呼叫了wait,那麼會阻塞到所有的子程序結束,並返
回錯誤echild,也就是沒有子程序等待。
apue中p248敘述sigchld如果配置成sig_ign也不會產生殭屍程序。是否系統sig_ign配置下,對
sigcld,sigchld做出的處理方式是相同的。
3.自定義處理方式:sigcld會立即檢查是否有子程序準好被等待,這便是sigcld最大漏洞了,一旦在訊號
處理函式中加入了訊號處理方式重建的步驟,那麼每次設定sigcld處理方式時,都會去檢查是否有訊號到來,
如果此時訊號的確到來了,先是呼叫自定義訊號處理函式,然後是呼叫訊號處理方式重建函式,在重建配置的
時候,會去檢查訊號是否到來,此時訊號未被處理,會再次觸發自定義訊號處理函式,一直迴圈。
所以在處理sigcld時,應該先wait處理掉了訊號資訊後,再進行訊號處理方式重建。
sigchld在配置訊號處理方式時,是不會立即檢查是否有子程序準備好被扽帶,也不會在此時呼叫訊號處理函式。
遇事處理方式
事,慢慢地說 大事,清楚地說 小事,幽默地說 沒把握的事,謹慎地說 沒發生的事,不要胡說 做不到的事,別亂說 傷害人的事,不能說 討厭的事,對事不對人地說 開心的事,看場合說 傷心的事,不要見人就說 別人的事,小心地說 自己的事,聽聽自己的心怎麼說 現在的事,做了再說 未來的事,未來再說 知人不必言...
故障處理方式
排除故障方法 1 自頂而下法 2 自底而上法 3 分而治之法 4 跟蹤流量路徑法 5 對比配置法 6 元件替換法 大多數採用的工具 ping 測試鏈路連通性 traceroute 測試路由可達性,是否缺少路由 telnet 測試服務埠,是否被拒絕 icmp internet 控制訊息協議 icmp被...
NAPI處理方式分析
napi 的核心在於 在乙個繁忙網路,每次有網路資料報到達時,不需要都引發中斷,因為高頻率的中斷可能會影響系統的整體效率,在高流量下,網絡卡產生的中斷可能達到每秒幾千次,而如果每次中斷都需要系統來處理,是乙個很大的壓力,而napi 使用輪詢時是禁止了網絡卡的接收中斷的,這樣會減小系統處理中斷的壓力,...