NOTE: You MUST define the $USER variable in the conf file before starting this service, or else it won't start.
I opted for making a system service running as my user since it's my personal preference, but if you prefer that this be a user service
then you can refer to the runit init system website's FAQ: http://smarden.org/runit/faq.html
Instead of
exec chpst -u floyd runsvdir /home/floyd/service
(if your user is floyd)
Replace it with
exec chpst -u floyd:audio runsvdir /home/floyd/service
To run these services as your user as part of the audio group, which is neccessary for pulseaudio to access your audio device files.
If you're already part of the audio group then you can ignore what I just said above.
Note to self: The lightdm runit service is currently disabled(by putting a down file in its service directory), even though that might not be neccessary. I should double check later if that's the case.
Something to note is that these plymouth finish script will only continue further if the run script exited successfully(with an exit code of 0).
This is because the equivalent systemd service will only execute ExecStartPost= if the ExecStart= command finished successfully ( as per its manual at 'info systemd.service').
The script that the ntp systemd service executed is a SysVinit script that used PIDs, but due to pid-guessing it's prone to failure by design. See http://smarden.org/runit/benefits.html
The run script of this runit service was altered from that SysVinit script to run in the foreground.
SysVinit scripts are long,verbose, and complex which is a shame, because it scared people from init scripts in general.
Runit scripts are very simple, as they just alter the environment if necessary, before exec'ing into the service.
They rarely take more than a couple lines.