Re: s6/s6-rc policy for Gentoo: The logging directory

Paul Sopka <[email protected]> Sat, 6 Jul 2024 15:28:24 +0200
Newsgroups gmane.comp.sysutils.supervision.general
Message-ID <[email protected]>
>  Any environment variable you want to make available for a whole
> supervision tree should be added via a "-e var=value" option to your
> s6-linux-init-maker invocation. 
Thanks, will do!


>  For user supervision trees, I suppose you're not using s6-l-i-m, so
> the best place would be to put the variables in an envdir and use
> "-E $envdir" (and possibly "-e $var" if you need to substitute $USER
> or something) in your s6-usertree-maker invocation. 
> If you're not using these tools, the best way is to do the same thing
> they do: put the variables in an envdir somewhere, and source the envdir
> both before running s6-svscan and before running your s6-rc-init and
> s6-rc script. 
I tested s6-usertree-maker, but I does not do everything I need. Anyway, 
I based my currently working scripts on its output.

This is how it looks right now:


${USER}-sv/run:

#!/bin/execlineb -P

fdmove -c 2 1

define USER Nanderty
define XDG_RUNTIME_DIR /run/${USER}

emptyenv -p

export USER ${USER}

s6-envuidgid -i ${USER}

backtick -in HOME { homeof ${USER} }

multisubstitute
{
   importas -Si USER
   importas -Si HOME
   importas -Si UID
   importas -Si GID
   importas -Si GIDLIST
}

foreground install -d -o ${USER} -g ${USER} -m 700 ${XDG_RUNTIME_DIR} ""
foreground install -d -o ${USER} -g ${USER} /var/log/${USER} ""
foreground install -d -o ${USER} -g ${USER} ${XDG_RUNTIME_DIR}/service ""

export XDG_DATA_HOME ${HOME}/.local/share
export XDG_STATE_HOME ${HOME}/.local/state
export XDG_CACHE_HOME ${HOME}/.cache
export XDG_RUNTIME_DIR ${XDG_RUNTIME_DIR}
export DBUS_SESSION_BUS_ADDRESS unix:path=${XDG_RUNTIME_DIR}/session-bus

s6-applyuidgid -U

s6-svscan -d3 ${XDG_RUNTIME_DIR}/service


${USER}-sv/finish:

#!/bin/execlineb -P

define USER Nanderty

rm -rf /run/${USER}


${USER}-rc/up:

#!/bin/execlineb -P

fdmove -c 2 1

define USER Nanderty

s6-setuidgid ${USER}

foreground {
     s6-rc-init -c /home/${USER}/.local/share/s6-rc/compiled -l 
/run/${USER}/s6-rc /run/${USER}/service
}

s6-rc -v2 -l /run/${USER}/s6-rc -up change default


${USER}-rc/down:

#!/bin/execlineb -P

define USER Nanderty

s6-setuidgid ${USER}

s6-rc -l /run/${USER}/s6-rc -bDa change

Plus, of course, the catch all logger for the ${USER}-sv process.

I would just export the logging dir variable as I do with the XDG_* 
vars, so I do not need to source a variable dir. I would need to define 
them in this script anyway, if I do not want to use the env-dir as a 
permanent external config file.

Would you consider it a better way to utilize an env-dir as a means of a 
config and source it in ${USER}-sv/run, thus exporting the vars for all 
child processes anyway?


Thank you for your input.


Paul
OpenPGP_0x71C7C85A2EA30F62.asc (application/pgp-keys, 3.1 KB)
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
8QRhtw==
=hu4K
-----END PGP PUBLIC KEY BLOCK-----
OpenPGP_signature.asc (application/pgp-signature, 840 B)
-----BEGIN PGP SIGNATURE-----

wsF5BAABCAAjFiEEklpwGqZx1YzBW1hqccfIWi6jD2IFAmaJRngFAwAAAAAACgkQccfIWi6jD2Ih
9Q//eZ8gJUIRy9Ej6nsXbw/o6Uj9h8bGkplempj0nlp25kbf8n9TwFmJErj2k1RcDvnFwcui+bAX
wJQOVSgwUdS8Al1plKQElNQOLIfCC+v68kihu4rwxcL6zQWCHSUbWd2tBuDyYncxDzQwUXQ4e/sl
K7RfhWBhKxTbAqU0xxKH1yKTG1T8qn/NEjjfXHWtq68OqTILPt5fEMw6KPaTyV3Rshvy6+t1D3QU
61xIrLW21gUetnhkxcVVO8Bvx800FqL2CpAeQrzg2lj4D8r+HxAkfjHs4LvF2Q0aquLazH83wPpv
NzupaDtlYBrlXGSCa/P98qYlY5lufczec31O43sMq/GcMINVLVoWvwkb52N7GGvE7xqgQ7ihSw6e
SdkBKLME6RDyiE+uH4AjMG3uBjeS8upymluGjyZdTlvQPTFqvxChWJYabCtRPOOQSf4FbhTx3WbW
sVgRusWizgjnKNBMMO3kzgPHl13UzwTTVjoVDqmvoHH+ikuouyLCZCV9YrPT3DRQJl++eWP668/Q
7OG+L8F7izvV01Syi3m9+zMdat6WMu9bqieV3IDIJitt9KXakjT+sfSWgaZgridpULxoQu6V3b/d
bQHREPojAHGZNPXp2CJ6/BZKkuV6XR7Uu9IaEhKLNOEL2ik9SRvs87D9kX+QYyl4dKHQ7yw0SOFK
LmU=
=b+Y4
-----END PGP SIGNATURE-----