i feel like this might possibly be a reason why a number of people assume that _all_ s6-ecosystem scripts have to be execline scripts.
I don't think it is the case, no. The myth started well before s6-rc was a thing. From the first days of s6, people assumed that, despite the documentation explicitly saying the opposite; this has nothing to do with execline's use in s6-rc.
However, while it's true that in both s6 and s6-rc, use of execline is not _ultimately_ required, in the s6-rc `up` context, one _does_ have to at least use execline to call the preferred interpreter with the relevant script.
The point of hardcoding execline here is that I need a middle ground between "force up/down to be a path to an external script", which is not flexible wrt e.g. existing sysvinit/openrc scripts you way want to call with "start" and "stop" arguments, and "make up/down full scripts/executable files", which requires embedding scripts/executables in the compiled db, which, no. And that's *exactly* what execlineb is for. The idea is for people to write echo "/path/to/script start" > $oneshot/up without wondering too much about it, and *without* needing to get lost in the details of execline syntax. But obviously, I suck at predicting user behaviour, and people always end up wanting to be too smart and tying their brains in knots about incredibly simple stuff, so, whatever. -- Laurent