Linux

“<service_name> 已死,但子系統已鎖定”是什麼意思?

  • December 16, 2016

我正在嘗試在 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,那麼可能有些混亂。

引用自:https://serverfault.com/questions/26276