squid: ERROR: no running copy
Dica publicada em Linux / Miscelânea
squid: ERROR: no running copy
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...
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
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.
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
É 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
Imagino que algum Jedie Linux poderá resolver essa lentidão.