But, that&#x27;s kinda the thing...<p>Folks gush about how concise systemd unit files are.<p>For services that require no complicated pre-start checks or configuration, equivalent service start scripts are <i>more</i> concise and <i>just</i> as legible in either OpenRC or -AIUI- Upstart. (Look at my conversion of a simple systemd unit file [0] to an OpenRC init script. [1])<p>What&#x27;s more, for jobs that <i>need</i> complicated pre-start logic of one kind or another -AIUI- systemd provides <i>no</i> way to bundle that logic with your service description file. You <i>have</i> to put that logic in <i>another</i> script file which is then called by systemd.<p>EDIT: I can&#x27;t speak to Upstart, but even if your service has dependencies or <i>needs</i> to be started before or after some other service or <i>class</i> of service, [2] specifying them is similarly concise and legible. Add<p><pre><code>  depend() {
   use some_optional_service
   need some_requred_service
   before some_service_or_service_class
   after some_other_service_or_srv_class
  }
</code></pre>
somewhere near the top of your script. For <i>most</i> services, this adds three non-whitespace lines. :)<p>[0] <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10355588" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10355588</a><p>[1] <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10357010" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10357010</a><p>[2] For example: The network start scripts provide the &quot;net&quot; service. You might have a service that -for some reason- needs to start before or after the &quot;net&quot; service, but <i>doesn&#x27;t</i> actually <i>depend</i> on it to start. This is what &quot;before&quot; and &quot;after&quot; are used for.