Linux
“<service_name> 已死,但子系統已鎖定”是什麼意思?
我正在嘗試在 centos 機器上執行 memcached,它執行了一段時間,但最終處於這種狀態:
memcached 已死,但子系統已鎖定
netstat 顯示:
tcp 0 0 :::11211 :::* LISTEN udp 0 0 0.0.0.0:11211 0.0.0.0:*
ps 顯示了這一點:
nobody 21983 0.0 1.8 60272 19912 ? Ssl 16:46 0:00 memcached -d -p 11211 -u nobody -c 1024 -m 64
有誰知道那是什麼意思?
這意味著該服務曾一度執行,但已崩潰。
當您啟動服務時,它會創建一個“鎖定”文件以指示該服務正在執行。這有助於避免服務的多個實例。當您停止服務時,此鎖定文件將被刪除。
當正在執行的服務崩潰時,鎖文件存在但程序不再存在。因此,消息。
看看這兩個區域
/var/run/*.pid
和/var/lock/subsys/*
。預計這些將彼此一致。也就是說,如果(emtpy 文件)lockfile/var/lock/subsys/crond
存在,那麼文件的第一行/var/run/crond.pid
應該包含為此服務執行的程序的 PID。如果沒有這樣的程序正在執行,則說明有問題。如果一個程序確實在執行(如您所見),但它不是那個PID,那麼可能有些混亂。