{
  s6-linux-init
, execline
, writeScript
, stdenvNoCC
, lib
, s6-rc
}:
let
  hpr = name: arg: writeScript name ''
    #!${execline}/bin/execlineb -S0
    ${s6-linux-init}/bin/s6-linux-init-hpr ${arg} \$@
  '';
  init = writeScript "init" ''
    #!${execline}/bin/execlineb -S0
    ${s6-linux-init}/bin/s6-linux-init -c /etc/s6-linux-init/current -m 0022 -p ${lib.makeBinPath [execline s6-linux-init s6-rc]}:/usr/bin:/bin -d /dev -- "\$@"
  '';
in stdenvNoCC.mkDerivation {
  name = "s6-init-bin";
  phases = ["installPhase"];
  installPhase = ''
    bin=$out/bin
    mkdir -p $bin
    cd $bin
    ln -s ${s6-linux-init}/bin/s6-linux-init-shutdown shutdown
    ln -s ${s6-linux-init}/bin/s6-linux-init-telinit telinit
    ln -s ${hpr "reboot" "-r"} reboot
    ln -s ${hpr "poweroff" "-p"} poweroff
    ln -s ${hpr "halt" "-h"} halt
    ln -s ${init} init
  '';
}