Esta vai para quem usa o Proxy Squid!
É quase certo que muitos já tenham passado pela situação do
Squid emitir a seguinte mensagem de erro:
squid: ERROR: No running copy
E o pior é que quando isto acontece, ele simplesmente se recusa
a obedecer qualquer comando...
Entendendo o que está acontecendo
O Squid roda com dois processos. Porém, acontece, às vezes,
que quando uma conexão é interrompida abruptamente, estes
processos parecem ficar meio "doidos".
Pode acontecer também quando "REStartamos" o Squid sem que
ele tenha parado efetivamente. Ou ainda, quando "rotacionamos"
os "Logs do Squid" (squid -k rotate).
No
squid.conf tem uma TAG que diz onde será gerado este
arquivo .pid .
Trata-se da TAG
pid_filename. No Conectiva é
/var/run/squid.pid,
mas pelo tutorial do Squid, nada impede de ser apontado para
outro diretório.
__pid_filename /var/run/squid.pid
Análise da ocorrência
Se dermos um "cat /var/run/squid.pid" com o Squid parado,
vamos perceber que o arquivo não existe. Porém, quando
iniciamos o Squid veremos que teremos dois processos.
Pelo que observei, o primeiro número sempre será o .pid
(cat /var/run/squid.pid = número do primeiro processo).
Quando ocorre erro neste pid, o arquivo normalmente cria
outros pid's mas não altera o arquivo /var/run/squid.pid e isto
provoca a falha do Serviço, apesar de estar com "status" de estar
rodando.
Como solucionar o problema
1- Aplica-se o comando:
# ps -ax | grep squid
2- Será mostrada a lista dos processos associados ao Squid;
3- Anota-se o número do processo que mostra o Squid entre
parênteses (squid);
4- Aplica-se o comando:
# echo num_processo_squid > /var/run/squid.pid
5- "Pára-se" o Squid. Caso ocorra a mensagem de que o Squid
está parado mas existe um pid, abre-se um editor de texto e
apaga-se manualmente o que tiver no arquivo.
6- Conferir se o Squid está parado e se o .pid está vazio (ou
inexistente).
7- Nosso bom Squid está pronto para recomeçar...
Se for necessário "chutar" o "pau da barraca":
# kill -HUP num_processo_squid
Ao serem inicializados os novos processo, um novo pid será
criado automaticamente.
Dica adaptada do HOW-TO do site
www.squid-cache.org
Xxoin