summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHendrik Jäger <gitcommit@henk.geekmail.org>2022-05-04 20:49:32 +0200
committerHendrik Jäger <gitcommit@henk.geekmail.org>2022-05-22 20:04:54 +0200
commit087f73b5c34b887fd774bda4251c5084d6631679 (patch)
treeb7eb5d9e0d00babf20d633361c1b13849e9f25f5
parentc4bc0fecb2a92d8b713cac93cae7141b4b56a542 (diff)
rotate logs of system services, but not user services
-rw-r--r--manifests/config.pp16
-rw-r--r--manifests/init.pp3
-rw-r--r--manifests/service.pp5
-rw-r--r--templates/etc/s6-services/s6-logrotater/run.epp12
4 files changed, 36 insertions, 0 deletions
diff --git a/manifests/config.pp b/manifests/config.pp
new file mode 100644
index 0000000..85a0831
--- /dev/null
+++ b/manifests/config.pp
@@ -0,0 +1,16 @@
+class s6::config {
+ $basedir = '/etc/s6-services/s6-logrotater'
+
+ file {
+ $basedir:
+ ensure => directory,
+ mode => '0600',
+ ;
+
+ "${basedir}/run":
+ ensure => present,
+ content => epp("s6/${basedir}/run.epp"),
+ mode => '0700',
+ ;
+ }
+}
diff --git a/manifests/init.pp b/manifests/init.pp
index cd36656..3141174 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -5,6 +5,9 @@ class s6 {
"${name}::install":
notify => Class["${name}::service"],
;
+ "${name}::config":
+ notify => Class["${name}::service"],
+ ;
"${name}::service": ;
}
}
diff --git a/manifests/service.pp b/manifests/service.pp
index 0e90664..92e13c9 100644
--- a/manifests/service.pp
+++ b/manifests/service.pp
@@ -4,5 +4,10 @@ class s6::service {
ensure => running,
enable => true,
;
+ 's6-logrotater':
+ ensure => running,
+ enable => true,
+ provider => 's6',
+ ;
}
}
diff --git a/templates/etc/s6-services/s6-logrotater/run.epp b/templates/etc/s6-services/s6-logrotater/run.epp
new file mode 100644
index 0000000..347f85d
--- /dev/null
+++ b/templates/etc/s6-services/s6-logrotater/run.epp
@@ -0,0 +1,12 @@
+<% if versioncmp( $facts['os']['release']['major'], '10' ) >= 1 { -%>
+#!/usr/bin/execlineb -P
+<% } else { -%>
+#!/usr/local/bin/execlineb -P
+<% } -%>
+
+foreground { sleep 10m }
+
+forbacktickx -p s6svc { ls -1N /etc/s6-scandir/ }
+importas -u s6svc s6svc
+if { test -d /etc/s6-scandir/\${s6svc}/log }
+s6-svc -a /etc/s6-scandir/\${s6svc}/log