4

服务 memcached 重新启动产生:
停止 memcached:[失败]
启动 memcached:[确定]

服务 memcached 状态产生:
memcached dead 但 subsys 已锁定

ls inside /var/lock/subsys/ 显示了一个名为 memcached 的文件

ls inside /var/run/ 显示没有名为 memcached 的 pid 文件
,此处还有另一个名为 memcached 的文件夹,但该文件夹中没有任何内容。

rm /var/lock/subsys/memcached 摆脱 memcached 锁定文件

服务重新启动 memcached yields:
停止 memcached:[失败]
启动 memcached:[确定]

服务 memcached 状态产生:
memcached dead 但 subsys 已锁定

我究竟做错了什么?

编辑:我想补充一点,我在发布之前已经搜索过这个,我要么已经在执行上述帖子中列出的步骤,要么该帖子已有多年历史。

4

7 回答 7

2

是否有另一个进程绑定到 TCP/11211?

也许您尝试以非特权用户身份启动 memcached 服务,但它失败了:

$ service memcached start
Starting memcached:                                        [  OK  ]
touch: cannot touch ‘/var/lock/subsys/memcached’: Permission denied

之后,service memcached status误报memcached 没有运行:

$ service memcached status
memcached dead but subsys locked

但它是,它绑定到端口 11211,为了检查这个你可以使用:

$ fuser -n tcp 11211
11211/tcp:            4439

或者:

$ pgrep -l memcached
4439 memcached

Memcached 将无法启动,因为它无法绑定到 11211,因为正在运行的实例已经绑定到它。不幸的是,有些系统(我在看你,CENTOS)可能不会在/var/log/messagesor上留下任何有用的提示/var/log/syslog。这就是为什么之前对这个问题的许多摆弄绑定地址的答案看起来就像他们解决了这个问题。

你如何解决它?

由于service stop memcached不起作用,你必须杀死它:

$ pkill memcached

或者这个(其中 4439 是您在上一步中找到的 pid):

$ kill 4439

然后你可以正确地使用 sudo:

$ sudo service memcached start
Starting memcached:                                        [  OK  ]
$ service memcached status
memcached (pid 6643) is running... 
于 2016-07-11T13:59:44.953 回答
1

通过在终端中键入以下命令解决了这个问题:

1)su(成为根)。

2)killall -9 memcached(杀死memcached)。

3)/etc/init.d/memcached start(手动启动memcached)。

或者: 3) service memcached start。

于 2014-03-25T13:40:59.350 回答
1

检查 /etc/sysconfig/memcached 确保 OPTIONS="-l 127.0.0.1" 正确

于 2014-06-17T15:19:31.967 回答
0

从 OPTION 中删除 -l。

例如,而不是 OPTION="-l 2.2.2.2" 尝试使用 OPTION="2.2.2.2"

这对我有用。

于 2015-05-06T09:17:03.363 回答
0

在我的情况下,我想通过套接字使用 memcache

OPTIONS="-t 8 -s /run/memcached/memcached.sock -a 0777 -U 0"

从另一个操作系统复制,并得到同样的问题。然后我意识到我只是忘记了,在我的操作系统中 /run/ 不存在。而已。看看你的路径,哈哈

于 2021-01-03T23:12:54.003 回答
0

删除和重新安装 memcached 对我有用:

[acool@acool super-confidential-dir]$ sudo yum remove memcached
...
[acool@acool super-confidential-dir]$ sudo yum install memcached

在上述命令并启动它之后,我得到了:

[acool@acool super-confidential-dir]$ sudo service memcached status
memcached dead but pid file exists

那时我杀死了它并删除了 pid 文件:

[acool@acool super-confidential-dir]$ sudo killall -s 9 memcached
...
[acool@acool super-confidential-dir]$ sudo rm /var/run/memcached/memcached.pid

最后启动它并检查它的状态:

[acool@acool super-confidential-dir]$ sudo service memcached start
...
[acool@acool super-confidential-dir]$ sudo service memcached status
memcached (pid  13804) is running...

然后我又开心了。

祝你好运。

于 2017-04-06T19:04:45.757 回答
0

要解决此问题,请以 root 身份运行以下脚本 rm /var/run/memcached/memcached.pid rm /var/lock/subsys/memcached service memcached start

于 2016-03-17T13:30:57.820 回答