当前位置:  开发笔记 > 数据库 > 正文

memcached restart启动一个新的memcached并且不会杀死旧的memcached

如何解决《memcachedrestart启动一个新的memcached并且不会杀死旧的memcached》经验,为你挑选了1个好方法。

我正在生产模式和登台模式下运行我的rails应用程序在同一台服务器上,在不同的文件夹中.他们都使用memcache-client,需要运行memcached.

到目前为止,我还没有设置部署脚本,因此只需通过sshing到服务器,进入相应的目录,更新代码,重新启动memcached,然后重新启动unicorn(实际运行rails应用程序的进程)来手动部署.我重新启动了memcached:

sudo /etc/init.d/memcached restart &

这会启动一个新的memcached,但它不会杀死旧的:检查出来:

ip-:test.millionaire[subjects]$ ps afx | grep memcache
11176 pts/2    S+     0:00  |           \_ grep --color=auto memcache
10939 pts/3    R      8:13              \_ sudo /etc/init.d/memcached restart
 7453 ?        Sl     0:00 /usr/bin/memcached -m 64 -p 11211 -u nobody -l 127.0.0.1

ip-:test.millionaire[subjects]$ sudo /etc/init.d/memcached restart &
[1] 11187

ip-:test.millionaire[subjects]$ ps afx | grep memcache
11187 pts/2    T      0:00  |           \_ sudo /etc/init.d/memcached restart
11199 pts/2    S+     0:00  |           \_ grep --color=auto memcache
10939 pts/3    R      8:36              \_ sudo /etc/init.d/memcached restart
 7453 ?        Sl     0:00 /usr/bin/memcached -m 64 -p 11211 -u nobody -l 127.0.0.1

[1]+  Stopped                 sudo /etc/init.d/memcached restart
ip-:test.millionaire[subjects]$ sudo /etc/init.d/memcached restart &
[2] 11208
ip-:test.millionaire[subjects]$ ps afx | grep memcache
11187 pts/2    T      0:00  |           \_ sudo /etc/init.d/memcached restart
11208 pts/2    R      0:01  |           \_ sudo /etc/init.d/memcached restart
11218 pts/2    S+     0:00  |           \_ grep --color=auto memcache
10939 pts/3    R      8:42              \_ sudo /etc/init.d/memcached restart
 7453 ?        Sl     0:00 /usr/bin/memcached -m 64 -p 11211 -u nobody -l 127.0.0.1

可能导致它的原因是还有另一个memcached运行 - 请参阅底线.我对这来自哪里感到困惑,而我的直觉就是杀死它,但我想我最好还是和那些真正了解memcached的人比我做的更好.

感谢任何建议 - 最多

编辑 - 解决方案

经过与同事的一些侦探工作后,我想到了这一点.在rails控制台中,我键入了CACHE.stats,它打印出一个值的散列,包括"pid",我可以看到它被设置为memcached的实例,而不是mem;来自memcached restart,即此过程:

7453 ?        Sl     0:00 /usr/bin/memcached -m 64 -p 11211 -u nobody -l 127.0.0.1

memcached控制脚本(即定义启动,停止和重启命令)在 /etc/init.d/memcached

这条线说的是

# Edit /etc/default/memcached to change this.
ENABLE_MEMCACHED=no

所以我看了看/etc/default/memcached,这也是为了 ENABLE_MEMCACHED=no

所以,这基本上阻止了memcached的停止和启动.我把它改成了 ENABLE_MEMCACHED=yes,然后停下来就开始了.现在当我停止并启动memcached时,就是上面的过程,即使用中的memcached,它已经停止并启动了.



1> Greg..:

尝试使用:

 killall memcached

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有