Skip to content

s6

  • contents for bundles has been deprecated, use contents.d instead
  • dependencies has been deprecated, use dependencies.d instead
  • s6-rc-db does not do topological sorting on compiled databases when listing dependencies (open a feature request)
  • /dev/fd exists on other unices and is provided under Linux for compatibility. /proc/*/fd is specific to Linux.
  • sysctl() the syscall is officially deprecated, but the binary sysctl is what is recommended nowadays and uses /proc/sys
  • Do not mount /dev/shm as we’re symlinking it to /run/shm which is also tmpfs
  • /tmp is a symlink to /run/tmp which gets created on every boot (the symlink however gets created only once at the start of bootstrapping/installing the system /tmp)
  • .ICE-unix and .X11-unix in /tmp belong to Xorg and have been removed
  • fsck depends on sys to check for some features (and we should leave it to the initramfs?)
  • Consider having a virtual or a dev to bundle some services (like core, devpts, fd and shm)
  • We want to be initramfs agnostic, so use mountpoint to check for proc and sys (no need for devtmpfs becuase the kernel has options for automount and we can control that)
  • We need cgroup2 to be used as older versions rely on tmpfs on /sys/fs/cgroup
  • 66, anopa and slew are based on s6/s6-rc
  • efivars gets automatically mounted over at /sys/efi/firmware/efivars when using booster; requires a separate service for iso
  • Do not remove sh -e from shebang in rc scripts or use execlineb -P or remove exec
  • devpts does not get mounted automatically at boot or with mount -a and requires a separate mount devpts
  • shm requires chmod 1777 /dev/shm to restore correct permissions
  • Do not provide /usr/bin/modules-load and /etc/sysctl.d; systemd stuff
  • Use toybox and other available user space utilities instead of depending on more packages s6-linux-utils and s6-portable-utils
  • It is not required that run or finish files 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)