Here is a simple upstart script for the varnish and varnishncsa daemon. As of 3.0.3 upstart scripts aren't included in the standard debian package.
Nothing too fancy here. I'm going to be referencing these upstart scripts when I talk about plugging in logstash to varnishnicsa in another post. The real beauty is you get to hook varnishncsa into starting and stopping with varnish starts and stops.
varnish init (upstart) script:
varnishncsa init (upstart) script:
Remember that when you replace the init.d script with the upstart version you effectively deprecate the settings in /etc/defaults/varnish*, so you'll need to incorporate any of those configuration settings into these scripts.
You can test these settings by running:
And behold! It started both varnish and the varnishncsa logging daemon:
If it looks funny to you that there are 2 varnishd programs running, don't forget that varnish intentionally spawns a child.
I hope that helps.
Nothing too fancy here. I'm going to be referencing these upstart scripts when I talk about plugging in logstash to varnishnicsa in another post. The real beauty is you get to hook varnishncsa into starting and stopping with varnish starts and stops.
varnish init (upstart) script:
# varnish - HTTP accelerator
#
description "load balancer for Python api workers"
start on (local-filesystems
and net-device-up IFACE!=lo)
stop on runlevel[!2345]
respawn
# These are from the default init.d script
limit nofile 131072 131072
limit memlock 82000 82000
exec "/usr/sbin/varnishd -F -a :80 -T localhost:6082 \
-f /etc/varnish/default.vcl -S /etc/varnish/secret \
-u varnish -g varnish -s malloc,256m"
varnishncsa init (upstart) script:
# varnishncsa - Logging daemon for varnish
#
description "logging daemon for varnish"
env LOG_OPTIONS='%h %l %u %t "%r" %s %b %{Varnish:time_firstbyte}x %{Varnish:handling}x'
start on started varnish
stop on stopped varnish
respawn
exec /usr/bin/varnishncsa -a -F "$LOG_OPTIONS" -w /var/log/varnish/varnishncsa.log
Remember that when you replace the init.d script with the upstart version you effectively deprecate the settings in /etc/defaults/varnish*, so you'll need to incorporate any of those configuration settings into these scripts.
You can test these settings by running:
$ service varnish start
varnish start/running, process 13562
And behold! It started both varnish and the varnishncsa logging daemon:
$ ps aux | grep varnish
root 13617 8.0 2.0 117236 84684 ? SLs 19:13 0:00 /usr/sbin/varnishd -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -u varnish -g varnish -s malloc,256m
root 13618 0.0 0.0 93840 684 ? Ss 19:13 0:00 /usr/bin/varnishncsa -a -F %h %l %u %t "%r" %s %b %{Varnish:time_firstbyte}x %{Varnish:handling}x -w /var/log/varnish/varnishncsa.log
varnish 13628 0.0 0.0 270936 1400 ? Sl 19:13 0:00 /usr/sbin/varnishd -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -u varnish -g varnish -s malloc,256m
If it looks funny to you that there are 2 varnishd programs running, don't forget that varnish intentionally spawns a child.
I hope that helps.