In my mind I would need to: - process the output from the fifo by prepending a tag, - move the processed output to stdin where s6-log can pick it up
If you read your logs from a fifo, then it's easy: use the integrated pipe mechanism in s6-svscan. Your "logging service", say foo-log, would read from the fifo and prepend the lines with a tag, then pipe its data to the foo-log/log service (a "logger for your logging service") which would perform the logging per se.
Something like: foo-log/run: #!/usr/bin/execlineb -PW redirfd -rnb 0 /var/run/itrp/foo-log-fifo s6-format-filter "foo: %s" foo-log/log/run: #!/usr/bin/execlineb -PW s6-envdir /var/run/s6/container_environment importas -is S6_LOGGING_SCRIPT S6_LOGGING_SCRIPT s6-log -bp -- ${S6_LOGGING_SCRIPT} /var/log/foo If you're already reading your logs from the integrated pipe instead of a fifo (i.e. your logging service is foo/log) then you can modify your service layout to reduce to the former case. I hope to be able to work on a new s6-overlay format next year, using s6-rc, which makes those "log pipelines" easy to set up. Hope this helps, -- Laurent