diff options
author | Hendrik Jäger <gitcommit@henk.geekmail.org> | 2023-08-25 12:48:48 +0200 |
---|---|---|
committer | Hendrik Jäger <gitcommit@henk.geekmail.org> | 2023-08-25 13:06:46 +0200 |
commit | 1169d626456c276954c96d515a5a0cd686c61338 (patch) | |
tree | 74cf56abfdef9653928e0bf4210d95bde468b258 |
initially populated
-rw-r--r-- | down | 0 | ||||
-rw-r--r-- | down-signal | 0 | ||||
-rw-r--r-- | finish | 7 | ||||
-rw-r--r-- | lock-fd | 2 | ||||
-rw-r--r-- | log/run | 37 | ||||
-rw-r--r-- | max-death-tally | 2 | ||||
-rw-r--r-- | notification-fd | 2 | ||||
-rw-r--r-- | run | 28 | ||||
-rw-r--r-- | timeout-finish | 0 | ||||
-rw-r--r-- | timeout-kill | 2 |
10 files changed, 80 insertions, 0 deletions
diff --git a/down-signal b/down-signal new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/down-signal @@ -0,0 +1,7 @@ +#!/usr/bin/execlineb -P + +# TODO: +# a sane example of handling the arguments would be nice + +# cleanup some files related to this service +rm -rf /tmp/${3} @@ -0,0 +1,2 @@ +# TODO: are comments allowed here? +8 @@ -0,0 +1,37 @@ +#!/usr/bin/execlineb -P + +# TODO: +# a sane example of handling the arguments would be nice + +# populate some variables +define RUN_USER jdoe +define INSTANCE_NAME jane +define MAIL_RCPT john +backtick HOME { homeof ${RUN_USER} } +importas -n -u HOME HOME + +define LOGDIR ${HOME}/var/log/s6/imaginary_service-${INSTANCE_NAME} +define MAIL_FIFO ${LOGDIR}/mail_fifo + +# redirect STDERR to STDIN so it can be caught by a logging service +fdmove -c 2 1 + +# switch to a different user for running this +s6-setuidgid ${RUN_USER} + +# the command to start and supervise +s6-log + # prepend TAI64N timestamp + t + # prepent ISO 8601 timestamp + T + # rotate after 1MiB written + s1048576 + # total size of logdir may be 2GiB + S2147483648 + # filter lines with only spaces + -"^[[:space:]]+$" + # upon rotation, send log to MAIL_RCPT + !"background { redirfd -r 0 ${MAIL_FIFO} mail -s \"instance log: ${INSTANCE_NAME}\" -- ${MAIL_RCPT} } tee ${MAIL_FIFO}" + # directory to write logfiles to + "${LOGDIR}/logs" diff --git a/max-death-tally b/max-death-tally new file mode 100644 index 0000000..162b201 --- /dev/null +++ b/max-death-tally @@ -0,0 +1,2 @@ +# TODO: are comments allowed here? +10 diff --git a/notification-fd b/notification-fd new file mode 100644 index 0000000..9d1305b --- /dev/null +++ b/notification-fd @@ -0,0 +1,2 @@ +# TODO: are comments allowed here? +7 @@ -0,0 +1,28 @@ +#!/usr/bin/execlineb -P + +# TODO: +# a sane example of handling the arguments would be nice + +# populate some variables +define RUN_USER jdoe +define INSTANCE_NAME jane +backtick HOME { homeof ${RUN_USER} } +importas -n -u HOME HOME + +# redirect STDERR to STDIN so it can be caught by a logging service +fdmove -c 2 1 + +# switch to a different user for running this +s6-setuidgid ${RUN_USER} + +# handle SIGTERM +trap -x { + SIGTERM { + pipeline { echo "system_powerdown\n" } + s6-ipcclient ${HOME}/${INSTANCE_NAME}-monitor.socket + s6-ioconnect -67 + } +} + +# the command to start and supervise +imaginary_service -l 127.0.0.1 -p 31337 ${HOME}/run/listener_${INSTANCE_NAME}/${INSTANCE_NAME}.conf diff --git a/timeout-finish b/timeout-finish new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/timeout-finish diff --git a/timeout-kill b/timeout-kill new file mode 100644 index 0000000..cd402cb --- /dev/null +++ b/timeout-kill @@ -0,0 +1,2 @@ +# TODO: are comments allowed here? +10000 |