diff options
Diffstat (limited to 'manifests')
-rw-r--r-- | manifests/service.pp | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/manifests/service.pp b/manifests/service.pp index 54b10ad..85a7ec5 100644 --- a/manifests/service.pp +++ b/manifests/service.pp @@ -3,20 +3,32 @@ define runit::service ( $group = root, # the service's group name $enable = true, # shall the service be linked to /etc/service $ensure = present, # shall the service be present in /etc/sv - # either one of these three must be declared - it defines the content of the run script /etc/sv/$name/run + # start command - either one of these three must be declared - it defines the content of the run script /etc/sv/$name/run $command = undef, # the most simple way; just state command here - it may not daemonize itself, # but rather stay in the foreground; all output is logged automatically to $logdir/current # this uses a default template which provides logging $source = undef, # specify a source file on your puppet master $content = undef, # specify the content directly (mostly via 'template') + # finish command - defines the content of the finish script /etc/sv/$name/finish + $finish_command = '', + $finish_source = undef, + $finish_content = undef, # service directory - this is required if you use 'command' $rundir = undef, # logging stuff $logger = true, # shall we setup an logging service; if you use 'command' before, # all output from command will be logged automatically to $logdir/current - $logdir = "${rundir}/log", + $_logdir = undef, $timeout = 7 # service restart/stop timeouts (only relevant for 'enabled' services) ) { + + # using the following construct, because '$logdir = "${rundir}/log"' in the + # define statement produces compilation warnings + if $_logdir == undef { + $logdir = "${rundir}/log" + } else { + $logdir = $_logdir + } # FixMe: Validate parameters # fail("Only one of 'command', 'content', or 'source' parameters is allowed") @@ -57,8 +69,17 @@ define runit::service ( ensure => $ensure, mode => 755, ; + "${svbase}/finish": + content => $finish_content ? { + undef => template('runit/finish.erb'), + default => $finish_content, + }, + source => $finish_source, + ensure => $ensure, + mode => 755, + ; } - + # eventually enabling/disabling the service if $enable == true { debug( "Service ${name}: ${_ensure_enabled}" ) |