s6
contentsforbundleshas been deprecated, usecontents.dinsteaddependencieshas been deprecated, usedependencies.dinsteads6-rc-dbdoes not do topological sorting on compiled databases when listing dependencies (open a feature request)/dev/fdexists on other unices and is provided under Linux for compatibility./proc/*/fdis specific to Linux.sysctl()the syscall is officially deprecated, but the binarysysctlis what is recommended nowadays and uses/proc/sys- Do not mount
/dev/shmas we’re symlinking it to/run/shmwhich is alsotmpfs /tmpis a symlink to/run/tmpwhich gets created on every boot (the symlink however gets created only once at the start of bootstrapping/installing the system/tmp).ICE-unixand.X11-unixin/tmpbelong to Xorg and have been removedfsckdepends onsysto check for some features (and we should leave it to the initramfs?)- Consider having a
virtualor adevto bundle some services (likecore,devpts,fdandshm) - We want to be initramfs agnostic, so use mountpoint to check for
procandsys(no need fordevtmpfsbecuase the kernel has options for automount and we can control that) - We need
cgroup2to be used as older versions rely ontmpfson/sys/fs/cgroup 66,anopaandsleware based on s6/s6-rcefivarsgets automatically mounted over at/sys/efi/firmware/efivarswhen usingbooster; requires a separate service foriso- Do not remove
sh -efrom shebang inrcscripts or useexeclineb -Por removeexec devptsdoes not get mounted automatically at boot or withmount -aand requires a separate mount devptsshmrequireschmod 1777 /dev/shmto restore correct permissions- Do not provide
/usr/bin/modules-loadand/etc/sysctl.d; systemd stuff - Use
toyboxand other available user space utilities instead of depending on more packagess6-linux-utilsands6-portable-utils - It is not required that
runorfinishfiles in service directories be execline scripts (similar to daemontools), any file format that the kernel knows how to execute is acceptable (e.g. shell scripts)
New Service Manager
Section titled “New Service Manager”- https://skarnet.com/projects/s6/
- https://skarnet.com/projects/s6/frontend/
- https://skarnet.com/projects/s6/frontend/servicefiles.html
- https://skarnet.com/projects/s6/rc/
- https://skarnet.com/projects/s6/rc/concepts.html
- https://skarnet.com/projects/s6/rc/s6-rc-compile.html
- https://skarnet.com/projects/s6/rc/s6-rc-db.html
- https://skarnet.com/projects/s6/rc/s6-rcd.html
- https://skarnet.com/projects/s6/rc/s6-rc.html
- https://skarnet.com/projects/s6/rc/services.html
- https://social.treehouse.systems/@ska/114201659912380653
References
Section titled “References”- https://codeberg.org/alecStewart1/gentoo-s6-scripts
- https://codeberg.org/git-bruh/s6-scripts
- https://codeberg.org/venomlinux/s6
- https://codeberg.org/venomlinux/s6-base
- https://codeberg.org/venomlinux/s6-scripts
- https://codeberg.org/venomlinux/s6-services
- https://gitea.artixlinux.org/artix/s6-scripts
- https://github.com/chimera-linux/dinit-chimera
- https://github.com/chris2511/meta-s6-rc
- https://github.com/dslm4515/MLFS-S6-Bootscripts/tree/sh-shell
- https://github.com/eweOS/dinit-services
- https://github.com/formula-spectre/s6-rc
- https://github.com/InitWare/InitWare/wiki/Dropped-components
- https://github.com/jhuntwork/merelinux
- https://github.com/just-containers/s6-overlay
- https://github.com/MichaelDeets/s6-scripts
- https://github.com/mumahendras3/sl6ckware
- https://github.com/skarnet/lh-bootstrap/tree/master/layout/rootfs/etc/s6-rc/source-base
- https://gitlab.alpinelinux.org/PureTryOut/dinit-alpine
- (laurent replies here) https://www.reddit.com/r/AlpineLinux/comments/ug3ipr/any_news_about_migration_from_openrc_to_s6/
- https://youtube.com/watch?v=_ULy7jBnXdo