Supervisor 無法停止及啟動程序

2021-10-08 03:44:06 字數 870 閱讀 2409

今天由於**變更,需要重啟服務,服務程序使用supervisor管理,

執行指令:supervisorctl restart group-***: 一直沒返回;

檢視所重啟服務組的程序:supervisorctl status group-***: 發現有乙個處於 stopping狀態,其他都是stoped;

查詢程序狀態:ps -ef|grep ***, 發現程序還活著;

cat /proc/'程序pid' status, 發現程序狀態是d,也就是等待磁碟資源(disk),因為等待磁碟資源是處於核心態,所以supervisor傳送的指令程序都無法響應,導致一直處於stopping狀態;

查了一下,網上都說需要重啟機器,不至於吧,想想等待磁碟的話,我把磁碟資源給他不就可以了嗎,可是到底是在等待什麼磁碟呢?

檢視一下程序的服務日誌,停留在了:begin delete gfs image: /data/image/testimg/,也就是服務要刪除機器掛載的磁碟上面的,但是一直在這裡等著,沒有返回,此時基本可以斷定是掛載的磁碟有問題;

檢視磁碟狀態,是正常掛載,而且也可以檢視到。。。

在檢視磁碟資料夾狀態:ls -al,發現只有讀許可權,而**要執行刪除,沒有許可權,所以一直等待;

修改目錄許可權,賦予所有許可權,程序成功停止。

通過此次事故,知道了一下兩個重點知識:

1、服務處理核心態時,是無法響應父程序所發的sigterm/sigint等指令,但是supervisor作為父程序,已經發出了控制訊號量,所以在supervisor中看到的是一直處於stopping狀態;

2、如果程序需要磁碟資源,只需要解決資源問題就可以繼續往下執行,而不至於重啟機器;

3、服務日誌一定要記錄邏輯的進入和結束點,本次排查過程,日誌也起到了關鍵作用。

hadoop無法停止

hadoop執行一段時間後,無法正常停止。解決方法 1.jps查詢所有的相關程序,如namenode,然後kill 9 程序號 2.修改etc hadoop hadoop env.sh 中的 hadoop pid dir 指定到乙個有效的目錄 如 export hadoop pid dir data...

supervisor配置及命令

supervisor 是 linux 系統中常用的程序守護程式。supervisor使用了python進行開發,安裝前先檢查一下系統否安裝了python2.4以上版本 但不支援python3.x 安裝命令 pip install supervisor 安裝完成後會生成三個執行程式 superviso...

mysql程序無法停止 mysql程序無法停止

我最近在ubuntu 12.04作業系統桌面中安裝了5.5.28 29.2 percona伺服器 gpl 版本29.2。我試圖停止伺服器使用不同的方法 sudo etc init.d mysql stop sudo kill 9 pid mysqladmin u root p shutdown ja...