我试图在 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,那么可能有些东西混淆了。