奇怪的行为varnishlog和streamredirect

我写了一个帮助程序来debugging清漆安装,并在生产和开发服务器上使用它。 奇怪的是,即使设置几乎相同(硬件除外),我遇到了不同的行为。

该命令是:

varnishlog > /var/log/v1.log & curl -I $URL; kill $! 

在我们的生产服务器上,它按预期工作: varnishlog作为后台进程启动,并将其输出redirect到/var/log/v1.log – 然后执行curl ,当varnishlog被终止时(尽pipe我没有看到'terminate'消息,直到下一个命令被执行)。

在我们的开发服务器上,命令执行并在crul输出后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>&1varnishlog | tee /var/log/v1.log varnishlog | tee /var/log/v1.log (后者不会将产品输出到控制台)。 其他命令(例如echo 'test' > /var/log/v1.log )按预期工作。 两台机器的清漆版本完全相同( varnish-3.0.5 revision 1a89b1f )。