Parando o memcached: [FAILED]. Por quê?

2

Meu aplicativo parece estar tendo problemas com o memcached não parar.

Estou usando o php e tenho chaves específicas que expiram depois de cada hora. No entanto, essas chaves & os valores não estão mais sendo repovoados.

Quando eu corro:

/etc/init.d/memcached restart

Eu recebo o seguinte:

Stopping memcached:                                        [FAILED]
Starting memcached:                                        [  OK  ]

Eu tenho que executar um killall memcached para o memcached parar. Eu então corro um reinício e tudo está bem.

Não sei exatamente o que está causando isso, mas preciso que o memcached esteja reiniciando a cada hora. Onde devo estar procurando descobrir o que está causando isso?

    
por Jhouse153 04.04.2013 / 17:00

2 respostas

1

Para mim, foi porque inicialmente executei memcached -d manualmente.

Então, mais tarde, quando tentei executar service memcached restart/stop , o comando de parada falharia. Depois de matar o processo manualmente, service memcached restart/stop funcionou como esperado.

    
por 27.10.2015 / 22:52
1

No valor de face, eu sugeriria que algo está causando falha no memcached. E se o memcached não estiver em execução quando você tentar pará-lo, ele falhará (porque já está parado). Isso explicaria por que /etc/init.d/memcached stop (ou a primeira parte de /etc/init.d/memcached restart ) está falhando.

Mas depois você diz que precisa executar killall memcached para parar. Isso me sugeriria um problema com seu sistema init perdendo o controle do processo. Como não sei qual sistema de inicialização você está usando, é difícil ter certeza.

Atualmente, a maioria das distribuições usa o SystemD e eu tive alguns problemas com o Debian por causa dos problemas causados pela compatibilidade com os scripts antigos do SysVinit.

Analisando os comandos que você está usando para controlar seu serviço, você está chamando diretamente o script SysVinit, então presumo que esteja usando o SysVinit ou o SystemD com compatibilidade SysVinit.

Se você não tem nenhum SystemD, então é quase certo que algo está errado com sua configuração do initscript e / ou memcached.

Se você tiver o SystemD, provavelmente ele está sendo causado por alguns problemas de comunicação entre o seu script de inicialização e o SystemD (e também pode haver problemas de configuração do memcached). IMO, o melhor caminho para a frente, seria escrever um arquivo de serviço SystemD apropriado e usar comandos do SystemD diretamente; ou seja, systemctl COMMAND SERVICE_NAME.service . Eles são super fáceis de escrever, o google irá ajudá-lo (tente algo como "como escrever o arquivo de serviço do systemd")

    
por 22.11.2017 / 04:18

Tags