s6-svscan: ignore service dirs without +t (sticky bit) in the scandir. those can be activated by setting their sticky bit later. this behaviour could be optionally enabled with a command line switch.
Rename the symlink to something starting with a dot. It's one system call, it's atomic, it's just as easy to script, and it doesn't mess with directory permissions.
s6-linux-init: - set a default hostname that can be changed with a command line option like "-h hostname".
This would only make sense for the early getty, and you already have full control over the early getty command line. Add your hostname to the getty invocation. For everything else, you can set the hostname in your rc.init script.
- optionally check if /proc and /sys are mounted and mount them if not (command line options "-P" and "-S").
It's unnecessary for stage 1, so it belongs to the rc.init script.
- specify a command to exec into other than s6-svscan with a command line option (say "-x")
If you're going to exec into something else than s6-svscan, then why are you using s6-linux-init in the first place? 😄 -- Laurent