J'utilise mon application rails en mode production et en mode de transfert sur le même serveur, dans différents dossiers. Ils utilisent tous les deux memcache-client qui nécessite que memcached soit en cours d'exécution. Pour l'instant, je n'ai pas configuré de script de déploiement et je fais donc un déploiement manuel en accédant au serveur, en allant dans le répertoire approprié, en mettant à jour le code, en redémarrant memcached et en redémarrant unicorn l'application rails). Je redémarre Memcached ainsi:memcached restart démarre un nouveau memcached et ne tue pas l'ancien
sudo /etc/init.d/memcached restart &
Cela commence une nouvelle memcached, mais il ne tue pas l'ancien: check it out:
ip-<an-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-<an-ip>:test.millionaire[subjects]$ sudo /etc/init.d/memcached restart &
[1] 11187
ip-<an-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-<an-ip>:test.millionaire[subjects]$ sudo /etc/init.d/memcached restart &
[2] 11208
ip-<an-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
Ce qui pourrait être à l'origine il y a une autre course memcached - voir la ligne du bas. Je suis mystifié quant à d'où cela vient et mon instinct est de le tuer mais je pensais que je ferais mieux de vérifier avec quelqu'un qui en sait plus sur memcached que je fais.
Grateful pour tout conseil - max
EDIT - solution
je me suis dit cela après un peu de travail de détective avec un collègue. Dans la console des rails, j'ai tapé CACHE.stats qui imprime un hachage de valeurs, y compris "pid", que je pouvais voir était l'instance de memcached qui n'a pas été démarré avec memcached restart, c'est à dire:
7453 ? Sl 0:00 /usr/bin/memcached -m 64 -p 11211 -u nobody -l 127.0.0.1
le script de contrôle memcached (c.-à-qui définit le début, arrêter et redémarrer les commandes), est en /etc/init.d/memcached
Une ligne dans ce dit
# Edit /etc/default/memcached to change this.
ENABLE_MEMCACHED=no
Alors j'ai regardé dans /etc/default/memcached
, qui a également été mis à ENABLE_MEMCACHED=no
Donc, cela empêchait essentiellement memcached d'être arrêté et démarré. Je l'ai changé à ENABLE_MEMCACHED=yes
, alors il s'arrêterait et commencerait bien. Maintenant, quand je m'arrête et démarre memcached, c'est le processus ci-dessus, le memcached en cours d'utilisation, qui est arrêté et démarré.
Merci greg, je sais comment tuer les processus, mais comme je l'ai dit que je voulais savoir ce qui se passe réellement plutôt que de simplement travailler autour d'elle. Je l'ai compris de toute façon, voir EDIT –