相信看到kill這個單詞,因為譯意的原因,大家腦海中會聯想到一些不好的畫面,但是在Linux中,kill命令也有一些比較實用的功能,它可以用來終止一些執行中的程式,也可以用來給某個程式發送指定信號,對指定行程進行相應操作,還可以通過一些小技巧實作程式的故障自愈,先介紹一下在Linux中的一些常用的kill命令用法
總結如下:
kill –l 查看kill命令信號串列
kill PID 終止行程(kill在不指定信號的情況下默認15信號,終止行程)
kill -1 PID 重繪行程,重讀組態檔(程式更改之后不需要退出重啟程式,發送1信號就可以更新程式)
kill -2 PID 終止正在運行的行程,相當于ctrl+c
kill -9 PID 強制關閉程式,但是程式被強制關閉后會殘留一些垃圾資訊,還可能會導致資料丟失,一般情況下不建議用
kill -18 PID 繼續運行
kill -19 PID 后臺休眠
killall cmd 終止在多個視窗運行的指定程式
kill -0:是個特殊信號,探測程式運行是否正常
如果信號是0,則不發送實際信號,但仍會實作錯誤檢查
kill -0的作用就是用來檢查錯誤,比如給某個程式發送kill -0信號,如果程式運行例外就會回傳一個非0的狀態碼,運行正常則回傳0的狀態碼
當然也可以用來探測網站服務,就是所謂的故障自愈,例如:nginx
執行命令killall -0 nginx &> /dev/null ||systemctl restart nginx
意思就是,如果這個nginx運行正常,則把回傳結果資訊扔進 /dev/null(黑洞,垃圾箱),如運行例外則重啟nginx
我們可以把這條命令代碼寫到腳本里面,設定探測時間,執行腳本之后系統定時監控網站服務運行是否正常,例外則自動重啟,但是有一個小bug,killall -0檢查不是特別精準,它只能檢查程式是否在行程里,如果在則0,不在則非0,但是程式在行程里不一定是運行狀態,也可能是stop狀態,這樣的話網站肯定訪問例外,因此killall -0檢查也可能會判斷失誤,所以這個方法要結合自己的實際情況來使用哦,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/342057.html
標籤:其他
下一篇:軟體體系結構
