From 125fa7f6c6e163de52c97f3c482dcd72849c6744 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sat, 31 Jan 2026 23:52:30 +0100 Subject: [PATCH] Add klogd, kernel logging daemon --- rc.syslog/klogd-log/consumer-for | 1 + rc.syslog/klogd-log/dependencies | 4 ++++ rc.syslog/klogd-log/env/CMD | 1 + rc.syslog/klogd-log/env/CMD_OPTS | 1 + rc.syslog/klogd-log/env/LOGDIR_GROUP | 2 ++ rc.syslog/klogd-log/env/LOGDIR_OWNER | 2 ++ rc.syslog/klogd-log/env/LOGDIR_PATH | 2 ++ rc.syslog/klogd-log/env/LOGDIR_PERMS | 2 ++ rc.syslog/klogd-log/env/LOG_SCRIPT | 2 ++ rc.syslog/klogd-log/notification-fd | 1 + rc.syslog/klogd-log/pipeline-name | 1 + rc.syslog/klogd-log/run | 24 ++++++++++++++++++++++++ rc.syslog/klogd-log/type | 1 + rc.syslog/klogd-srv/dependencies | 4 ++++ rc.syslog/klogd-srv/env/CMD | 1 + rc.syslog/klogd-srv/env/CMD_OPTS | 1 + rc.syslog/klogd-srv/producer-for | 1 + rc.syslog/klogd-srv/run | 12 ++++++++++++ rc.syslog/klogd-srv/type | 1 + 19 files changed, 64 insertions(+) create mode 100644 rc.syslog/klogd-log/consumer-for create mode 100644 rc.syslog/klogd-log/dependencies create mode 100644 rc.syslog/klogd-log/env/CMD create mode 100644 rc.syslog/klogd-log/env/CMD_OPTS create mode 100644 rc.syslog/klogd-log/env/LOGDIR_GROUP create mode 100644 rc.syslog/klogd-log/env/LOGDIR_OWNER create mode 100644 rc.syslog/klogd-log/env/LOGDIR_PATH create mode 100644 rc.syslog/klogd-log/env/LOGDIR_PERMS create mode 100644 rc.syslog/klogd-log/env/LOG_SCRIPT create mode 100644 rc.syslog/klogd-log/notification-fd create mode 100644 rc.syslog/klogd-log/pipeline-name create mode 100644 rc.syslog/klogd-log/run create mode 100644 rc.syslog/klogd-log/type create mode 100644 rc.syslog/klogd-srv/dependencies create mode 100644 rc.syslog/klogd-srv/env/CMD create mode 100644 rc.syslog/klogd-srv/env/CMD_OPTS create mode 100644 rc.syslog/klogd-srv/producer-for create mode 100644 rc.syslog/klogd-srv/run create mode 100644 rc.syslog/klogd-srv/type diff --git a/rc.syslog/klogd-log/consumer-for b/rc.syslog/klogd-log/consumer-for new file mode 100644 index 0000000..3a77aac --- /dev/null +++ b/rc.syslog/klogd-log/consumer-for @@ -0,0 +1 @@ +klogd-srv diff --git a/rc.syslog/klogd-log/dependencies b/rc.syslog/klogd-log/dependencies new file mode 100644 index 0000000..e85efae --- /dev/null +++ b/rc.syslog/klogd-log/dependencies @@ -0,0 +1,4 @@ +# Comment out "remount-root" and uncomment "local-fs" +# if you use separate partition for /var/log +remount-root +#local-fs diff --git a/rc.syslog/klogd-log/env/CMD b/rc.syslog/klogd-log/env/CMD new file mode 100644 index 0000000..9d5239c --- /dev/null +++ b/rc.syslog/klogd-log/env/CMD @@ -0,0 +1 @@ +s6-log diff --git a/rc.syslog/klogd-log/env/CMD_OPTS b/rc.syslog/klogd-log/env/CMD_OPTS new file mode 100644 index 0000000..00d672e --- /dev/null +++ b/rc.syslog/klogd-log/env/CMD_OPTS @@ -0,0 +1 @@ +-d3 diff --git a/rc.syslog/klogd-log/env/LOGDIR_GROUP b/rc.syslog/klogd-log/env/LOGDIR_GROUP new file mode 100644 index 0000000..3794bcd --- /dev/null +++ b/rc.syslog/klogd-log/env/LOGDIR_GROUP @@ -0,0 +1,2 @@ +root +# Logging directory group ownership diff --git a/rc.syslog/klogd-log/env/LOGDIR_OWNER b/rc.syslog/klogd-log/env/LOGDIR_OWNER new file mode 100644 index 0000000..9f9fd12 --- /dev/null +++ b/rc.syslog/klogd-log/env/LOGDIR_OWNER @@ -0,0 +1,2 @@ +root +# Logging directory owner diff --git a/rc.syslog/klogd-log/env/LOGDIR_PATH b/rc.syslog/klogd-log/env/LOGDIR_PATH new file mode 100644 index 0000000..0250193 --- /dev/null +++ b/rc.syslog/klogd-log/env/LOGDIR_PATH @@ -0,0 +1,2 @@ +/var/log/klogd +# Logging directory path diff --git a/rc.syslog/klogd-log/env/LOGDIR_PERMS b/rc.syslog/klogd-log/env/LOGDIR_PERMS new file mode 100644 index 0000000..ccece6e --- /dev/null +++ b/rc.syslog/klogd-log/env/LOGDIR_PERMS @@ -0,0 +1,2 @@ +750 +# Logging directory access rights in octal diff --git a/rc.syslog/klogd-log/env/LOG_SCRIPT b/rc.syslog/klogd-log/env/LOG_SCRIPT new file mode 100644 index 0000000..017b42c --- /dev/null +++ b/rc.syslog/klogd-log/env/LOG_SCRIPT @@ -0,0 +1,2 @@ +n4 s500000 $LOGDIR_PATH +# Logging script used by s6-log diff --git a/rc.syslog/klogd-log/notification-fd b/rc.syslog/klogd-log/notification-fd new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/rc.syslog/klogd-log/notification-fd @@ -0,0 +1 @@ +3 diff --git a/rc.syslog/klogd-log/pipeline-name b/rc.syslog/klogd-log/pipeline-name new file mode 100644 index 0000000..fd64770 --- /dev/null +++ b/rc.syslog/klogd-log/pipeline-name @@ -0,0 +1 @@ +klogd diff --git a/rc.syslog/klogd-log/run b/rc.syslog/klogd-log/run new file mode 100644 index 0000000..bf7515d --- /dev/null +++ b/rc.syslog/klogd-log/run @@ -0,0 +1,24 @@ +#!/bin/execlineb -P + +################################### +# Start the kernel logging daemon # +################################### + +s6-envdir env +multisubstitute { + importas -u LOGDIR_OWNER LOGDIR_OWNER + importas -u LOGDIR_GROUP LOGDIR_GROUP + importas -u LOGDIR_PERMS LOGDIR_PERMS + importas -u CMD CMD + importas -usCd" " CMD_OPTS CMD_OPTS + importas -usCd" " LOG_SCRIPT LOG_SCRIPT +} +s6-envuidgid -B ${LOGDIR_OWNER}:${LOGDIR_GROUP} +multisubstitute { + importas -u LOGDIR_PATH LOGDIR_PATH + importas -u UID UID + importas -u GID GID +} +if { install -dm $LOGDIR_PERMS -o $UID -g $GID $LOGDIR_PATH } +s6-setuidgid ${UID}:${GID} +exec -c $CMD $CMD_OPTS -- $LOG_SCRIPT diff --git a/rc.syslog/klogd-log/type b/rc.syslog/klogd-log/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/rc.syslog/klogd-log/type @@ -0,0 +1 @@ +longrun diff --git a/rc.syslog/klogd-srv/dependencies b/rc.syslog/klogd-srv/dependencies new file mode 100644 index 0000000..e85efae --- /dev/null +++ b/rc.syslog/klogd-srv/dependencies @@ -0,0 +1,4 @@ +# Comment out "remount-root" and uncomment "local-fs" +# if you use separate partition for /var/log +remount-root +#local-fs diff --git a/rc.syslog/klogd-srv/env/CMD b/rc.syslog/klogd-srv/env/CMD new file mode 100644 index 0000000..6bd031b --- /dev/null +++ b/rc.syslog/klogd-srv/env/CMD @@ -0,0 +1 @@ +dmesg diff --git a/rc.syslog/klogd-srv/env/CMD_OPTS b/rc.syslog/klogd-srv/env/CMD_OPTS new file mode 100644 index 0000000..782891c --- /dev/null +++ b/rc.syslog/klogd-srv/env/CMD_OPTS @@ -0,0 +1 @@ +--follow --kernel --userspace --color=never --nopager --ctime --decode -s 65536 diff --git a/rc.syslog/klogd-srv/producer-for b/rc.syslog/klogd-srv/producer-for new file mode 100644 index 0000000..2f21a8f --- /dev/null +++ b/rc.syslog/klogd-srv/producer-for @@ -0,0 +1 @@ +klogd-log diff --git a/rc.syslog/klogd-srv/run b/rc.syslog/klogd-srv/run new file mode 100644 index 0000000..4827947 --- /dev/null +++ b/rc.syslog/klogd-srv/run @@ -0,0 +1,12 @@ +#!/bin/execlineb -P + +################################### +# Start the kernel logging daemon # +################################### + +s6-envdir env +multisubstitute { + importas -u CMD CMD + importas -usCd" " CMD_OPTS CMD_OPTS +} +exec -c $CMD $CMD_OPTS diff --git a/rc.syslog/klogd-srv/type b/rc.syslog/klogd-srv/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/rc.syslog/klogd-srv/type @@ -0,0 +1 @@ +longrun