Using high-level languages for init systems is a great idea.  In fact, we do this for the Guix System Distribution.  Our init system is called GNU Shepherd, and it&#x27;s written in Guile Scheme.  It&#x27;s great because you write services as Scheme code.  For example, I have a number of Ruby web servers that I run for development at work that are nearly identical.  Since services are first-class Scheme objects, I wrote a simple function that returns a service object for running a Ruby web server, specialized for a given application.  For this workflow, I run Shepherd as an unprivileged user and additionally manage all of my user services like gpg-agent, emacs daemon, offlineimap, etc.  No crappy external domain specific language to learn; data is code.  Highly recommended.<p><a href="http:&#x2F;&#x2F;www.gnu.org&#x2F;software&#x2F;shepherd&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.gnu.org&#x2F;software&#x2F;shepherd&#x2F;</a>