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

Nic*_*han 41 linux centos service memcached

我正在尝试在 centos 机器上运行 memcached,它运行了一段时间,但最终处于这种状态:

memcached 已死但子系统已锁定

netstat 显示了这一点:

tcp        0      0 :::11211                    :::*                        LISTEN      
udp        0      0 0.0.0.0:11211               0.0.0.0:*                               
Run Code Online (Sandbox Code Playgroud)

ps 显示这个:

nobody   21983  0.0  1.8  60272 19912 ?        Ssl  16:46   0:00 memcached -d -p 11211 -u nobody -c 1024 -m 64
Run Code Online (Sandbox Code Playgroud)

有谁知道那是什么意思?

Edd*_*die 64

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

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

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

看看这两个区域/var/run/*.pid/var/lock/subsys/*。预计这些会相互一致。也就是说,如果 (emtpy 文件) 锁文件/var/lock/subsys/crond存在,那么文件的第一行/var/run/crond.pid应该包含为此服务运行的进程的 PID。如果没有这样的进程在运行,那么就会出现问题。如果一个进程确实在运行(如您所见),但它不是那个PID,那么可能有些问题。

  • 啊,并且不是以 root 身份运行状态,您可能没有对 /var/run/memcached.pid 的读访问权限,因此,该命令假定子系统已死,因为它无法找到正确的进程。 (5认同)