A melhor saída de falhas durante o início é stdout / stderr - mas os scripts init padrão impedem que essa saída seja exibida.
Tente executar apenas varnishd -f /etc/varnish/default.vcl
- isso deve mostrar erros ao carregar seu VCL.
Estou tentando executar o Varnish, mas parece que um processo filho está morrendo na inicialização. Alguém pode sugerir a melhor maneira de eu depurar o que está errado?
Plano de fundo
Eu tenho um pi de framboesa no qual eu instalei o Debian, que estava rodando bem. Recentemente, decidi instalar o Raspbian (um sistema operacional baseado no Debian, mas otimizado para o raspberry pi). Para fazer isso, eu fiz uma instalação nova e usei o fantoche para ter certeza de que eu tinha as mesmas configurações que fiz anteriormente.
A única diferença substancial entre as duas configurações que posso pensar é que o Raspbian usa uma versão mais recente do Debian (Wheezy) do que eu estava usando anteriormente (Squeeze), então veio com o Varnish 3, ao invés de 2. >
Tentativas de depuração até o momento:
Eu olhei em / var / logs / syslog e encontrei o seguinte:
Sep 21 22:26:28 interceptor varnishd[15056]: Platform: Linux,3.1.9+,armv6l,-smalloc,-smalloc,-hcritbit
Sep 21 22:26:28 interceptor varnishd[15056]: child (15064) Started
Sep 21 22:26:28 interceptor varnishd[15056]: Pushing vcls failed:#012CLI communication error (hdr)
Sep 21 22:26:28 interceptor varnishd[15056]: Stopping Child
Sep 21 22:26:28 interceptor varnishd[15056]: Child (15064) died signal=11
Sep 21 22:26:28 interceptor varnishd[15056]: Child (-1) said Child starts
Sep 21 22:26:28 interceptor varnishd[15056]: Child cleanup complete
Sep 21 22:26:28 interceptor varnishd[15056]: Manager got SIGINT
Eu tentei pesquisar o erro, mas não consegui encontrar nada útil.
Eu também executei o strace -f enquanto reiniciei o verniz, mas obviamente isso gerou muitos resultados e não sabia ao certo o que procurar. Busquei o pid do processo infantil (15064), mas isso não parecia corresponder a nada. O strace continha muitas linhas como
[pid 15114] close(131072) = -1 EBADF (Bad file descriptor)
[pid 15114] close(131071) = -1 EBADF (Bad file descriptor)
[pid 15114] close(131070) = -1 EBADF (Bad file descriptor)
[pid 15114] close(131069) = -1 EBADF (Bad file descriptor)
[pid 15114] close(131068) = -1 EBADF (Bad file descriptor)
[pid 15114] close(131067) = -1 EBADF (Bad file descriptor)
[pid 15114] close(131066) = -1 EBADF (Bad file descriptor)
mas não tenho certeza se isso é normal ou talvez um resultado do meu problema, e não a causa disso.
Qualquer conselho sobre como devo proceder é muito apreciado.
A melhor saída de falhas durante o início é stdout / stderr - mas os scripts init padrão impedem que essa saída seja exibida.
Tente executar apenas varnishd -f /etc/varnish/default.vcl
- isso deve mostrar erros ao carregar seu VCL.
Tente anexar o verniz em execução com alguns sinalizadores muito simples:
arquivo varnishd -l 8m, / tmp, 8m -b localhost: 8080 -a 0.0.0.0:80 -w 2
e, em seguida, anexe o depurador gdb e veja se você pode descobrir porque o filho está se separando