flock導致程序卡死, 如何檢視

2021-07-10 04:42:44 字數 564 閱讀 7088

具體的用法檢視man flock就ok了。

因為遇到用flock鎖一直鎖住的情況,所以想寫個指令碼看看到底是哪個程序一直佔著資源。

用法:開幾個shell視窗,執行此指令碼,tailf  /tmp/gaussdbcontrol,檢視程序獲得鎖和釋放鎖的情況,同時可以用lsof -d 211來檢視這個檔案描述符的情況

#!/bin/bash

#測試flock,執行指令碼的時候,總是會起2個程序,這2個程序為父子程序關係,不要緊張

#lock_file=/tmp/gaussdbcontrol.lock

date "+%t %f"

get_lock_success()

(echo ***************try to get the lock,`date "+%t %f"`,`ps -ef | grep $$` | tee -a $lock_file 

flock -x 211  || get_lock_fail

get_lock_success

) 211>/tmp/gaussdbcontrol.lock

get_lock_fail()

如何檢視僵死程序

這些程序已經死亡,但沒有釋放系統資源,包括記憶體和一些一些系統表等,如果這樣的程序很多,會引發系統問題。用ps el看出的程序狀態如果是z,就是殭屍程序。ps ef grep defunc可以找出殭屍程序.有些zombie程序時用kill 9也不能殺死,而且消耗了很多系統資源不能釋放,如果系統在sh...

Linux如何檢視程序 殺死程序 啟動程序

1.檢視程序 ps命令 下面的命令還沒實踐,僅僅供你參考 可以用man ps檢視格式,只不過是乙個小工具而已!ps a 顯示現行終端機下的所有程式,包括其他使用者的程式。ps a 顯示所有程式。ps c 列出程式時,顯示每個程式真正的指令名稱,而不包含路徑,引數或常駐服務的標示。ps e 此引數的效...

Linux 如何建立程序函式與檢視程序

程序就是pcb,意味著建立乙個程序,就是建立乙個pcb pid t fork void 通過複製呼叫程序 父程序 建立乙個新的程序 子程序 建立乙個新的pcb,然後從父程序pcb中複製了很多資料過來複製的主要資訊有記憶體指標,程式計數器,上下文資料。記憶體指標 子程序與父程序執行的 其實是一樣的 指...