Você pode modificar o /etc/init.d/varnishncsa da seguinte maneira:
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/$NAME
PIDFILE=/var/run/$NAME/$NAME.pid
LOGFILE=/var/log/varnish/varnishncsa.log
USER=varnishlog
DAEMON_OPTS="-a -P $PIDFILE"
...
start_varnishncsa() {
output=$(/bin/tempfile -s.varnish)
log_daemon_msg "Starting $DESC" "$NAME"
create_pid_directory
if start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
--chuid $USER -b --exec /bin/bash \
-- -c "${DAEMON} ${DAEMON_OPTS} \
| /usr/sbin/rotatelogs /var/log/varnish/varnish.log.%Y%m%d%H 3600" \
> ${output} 2>&1; then
log_end_msg 0
else
log_end_msg 1
cat $output
exit 1
fi
rm $output
}
Isso acontece: start-stop-daemon gera um bash, que executa varnishlog com logging para stdout e pipes de saída através de rotatelogs. O parâmetro -b
permite que o daemon start-stop desanexe o processo iniciado para o segundo plano. A desvantagem é que o daemon start-stop não pode mais detectar se o comando é executado com sucesso.