Я пытаюсь запустить Varnish, но кажется, что дочерний процесс умирает при запуске. Может ли кто-нибудь предложить мне лучший способ отладки того, что идет не так?
Задний план
У меня есть raspberry pi, на котором я установил Debian, который отлично работал с лаком. Недавно я решил установить Raspbian (ОС на основе Debian, но оптимизированная для Raspberry Pi). Для этого я произвел новую установку и использовал марионетку, чтобы убедиться, что у меня все те же настройки, что и раньше.
Единственное существенное различие между двумя настройками, о котором я могу думать, заключается в том, что Raspbian использует более позднюю версию Debian (Wheezy), чем я использовал ранее (Squeeze), поэтому пришел с Varnish 3, а не 2.
Попытки отладки на данный момент:
Я заглянул в / var / logs / syslog и обнаружил следующее:
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
Я попытался найти ошибку в Google, но ничего полезного не нашел.
Я также запустил strace -f при перезапуске varnish, но, очевидно, это вернуло много результатов, и я не был уверен, что искать. Я искал pid дочернего процесса (15064), но, похоже, он ничего не соответствовал. В strace действительно было много строк вроде
[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)
но я не уверен, нормально ли это или, возможно, результат моей проблемы, а скорее ее причина.
Я очень ценю любые советы о том, как мне поступить.
Лучшим выводом при сбоях во время запуска является stdout / stderr, но скрипты инициализации по умолчанию не позволяют отображать этот вывод.
Попробуйте просто бегать varnishd -f /etc/varnish/default.vcl
- это должно показать вам любые ошибки при загрузке вашего VCL.
Попробуйте прикрепить беговой лак с помощью очень простых флажков:
varnishd -l 8m -s файл, / tmp, 8m -b localhost: 8080 -a 0.0.0.0:80 -w 2
а затем прикрепите отладчик gdb и посмотрите, сможете ли вы узнать, почему дочерний элемент нарушает