SHED init agnostic session process and user services - porting

shed is an implementation of a session process and user services provider for unix-like operating systems, written in almost completely posix shell

it is something i began writing about 4 years ago on my main machine (devuan gnu/linux) to have something better than just starting programs inside the .xinitrc (well .xsession in debian derivates) and hoping i would never have to stop or restart them

nowadays it is not just a session process but a well designed (even if i say so) daemon with capabilities ranging from setting xdg vars (XDG_RUNTIME_DIR, XDG_SESSION_ID, etc), loading env files, starting session components, user services and in master it is now able to have "on demand daemons" (i need to write documentation and examples of that) but in simple words daemon definition files that are not started until a program request the user service to be started/stopped (be it by hooks or by wrapper)

lately i've been putting a higher consideration on the possibility of this thing being interesting to unix-like operating systems besides the linux+gnu family (which is entrenched on the systemd obscurantism) so i put some work on making hub functions whenever i had to rely on something linux specific with the intention that porting to BSDs and illumos would be easier but at the end of the day the little i've wet my fingers with the BSDs is not enough to complete the porting myself, hence this thread, so what are the opinions, is it as easy to port as i think or is there some crucial difference between the linux and bsd ecosystem i'm missing? i have been targeting dash as the shell interpreter on devuan so i'm hopeful no shell interpreter currently in use will lack features used by shed

the main shed repo: https://github.com/eylles/shed
 
Back
Top