summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--files/etc/systemd/system/s6.service14
-rw-r--r--manifests/install.pp48
2 files changed, 45 insertions, 17 deletions
diff --git a/files/etc/systemd/system/s6.service b/files/etc/systemd/system/s6.service
new file mode 100644
index 0000000..3c3c7ec
--- /dev/null
+++ b/files/etc/systemd/system/s6.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=s6 supervision tree
+Documentation=https://skarnet.org/software/s6/
+
+[Install]
+WantedBy=multi-user.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/s6-svscan -t0 /etc/s6-scandir
+ExecStop=/usr/bin/s6-svscanctl -t /etc/s6-scandir
+ExecReload=/usr/bin/s6-svscanctl -an /etc/s6-scandir
+Restart=always
+RestartSec=1
diff --git a/manifests/install.pp b/manifests/install.pp
index 9609076..f683aad 100644
--- a/manifests/install.pp
+++ b/manifests/install.pp
@@ -5,23 +5,6 @@ class s6::install {
;
}
file {
- '/usr/local/bin/s6-svscanboot':
- ensure => present,
- source => [
- "puppet:///modules/s6/usr/local/bin/s6-svscanboot.${facts['os']['distro']['codename']}",
- 'puppet:///modules/s6/usr/local/bin/s6-svscanboot',
- ],
- mode => '0755',
- require => Package['s6'],
- notify => Class['s6::service'],
- ;
- '/etc/init.d/s6':
- ensure => present,
- source => 'puppet:///modules/s6/etc/init.d/s6',
- mode => '0755',
- require => Package['s6'],
- notify => Class['s6::service'],
- ;
'/etc/s6-services/':
ensure => directory,
;
@@ -32,6 +15,37 @@ class s6::install {
ensure => directory,
;
}
+
+ if $facts['service_provider'] == 'systemd' {
+ file {
+ '/etc/systemd/system/s6.service':
+ ensure => present,
+ source => 'puppet:///modules/s6/etc/systemd/system/s6.service',
+ require => Package['s6'],
+ notify => Class['s6::service'],
+ ;
+ }
+ } else {
+ file {
+ '/usr/local/bin/s6-svscanboot':
+ ensure => present,
+ source => [
+ "puppet:///modules/s6/usr/local/bin/s6-svscanboot.${facts['os']['distro']['codename']}",
+ 'puppet:///modules/s6/usr/local/bin/s6-svscanboot',
+ ],
+ mode => '0755',
+ require => Package['s6'],
+ notify => Class['s6::service'],
+ ;
+ '/etc/init.d/s6':
+ ensure => present,
+ source => 'puppet:///modules/s6/etc/init.d/s6',
+ mode => '0755',
+ require => Package['s6'],
+ notify => Class['s6::service'],
+ ;
+ }
+ }
user {
's6-logs':
ensure => present,