“已死但子系统已锁定”是什么意思?

“已死但子系统已锁定”是什么意思?

我试图在 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

有人知道那是什么意思吗?

答案1

这意味着该服务曾经运行过,但已崩溃。

当您启动服务时,它会创建一个“锁定”文件来指示该服务正在运行。这有助于避免服务的多个实例。当您停止服务时,此锁定文件将被删除。

当正在运行的服务崩溃时,锁定文件存在,但进程不再存在。因此,出现以下消息。

查看两个区域/var/run/*.pid/var/lock/subsys/*。它们应该彼此一致。也就是说,如果 (空文件) 锁文件/var/lock/subsys/crond存在,则文件的第一行/var/run/crond.pid应该包含为此服务运行的进程的 PID。如果没有这样的进程正在运行,那么就是出了问题。如果某个进程确实在运行(如您所见),但它没有PID,那么可能有些东西混淆了。

相关内容