Я написал помощника для отладки установки Varnish и использовал его как на рабочем сервере, так и на сервере разработки. Странно то, что я столкнулся с другим поведением, хотя настройки почти идентичны (за исключением оборудования).
Команда такая:
varnishlog > /var/log/v1.log & curl -I $URL; kill $!
На нашем производственном сервере все работает как положено: varnishlog
запускается как фоновый процесс и перенаправляет его вывод на /var/log/v1.log
- затем curl
выполняет и когда это будет сделано varnishlog
убит (хотя я не вижу сообщения «завершено», пока не будет выполнена следующая команда).
На нашем сервере разработки команда выполняется, и сразу после нее появляется сообщение «завершено». crul
вывод. Тем не мение, /var/log/v1.log
пусто.
Оба сервера uname -srvmo
возвращается Linux 2.6.32-358.18.1.el6.x86_64 #1 SMP Wed Aug 28 17:19:38 UTC 2013 x86_64 GNU/Linux
и оба бегут CentOS release 6.4 (Final)
.
РЕДАКТИРОВАТЬ: Кажется, что varnishlog > /var/log/v1.log
не работает. Также не делает varnishlog > /var/log/v1.log 2>&1
или varnishlog | tee /var/log/v1.log
(последний также не выводит продукт на консоль). Другие команды (например, echo 'test' > /var/log/v1.log
) работают как положено. Вариант лака абсолютно одинаковый на обеих машинах (varnish-3.0.5 revision 1a89b1f
).