A. Example dependencies

Here are three alternative ways of expressing "sendmail depends on network and syslog".

Example A-1. expressing dependencies via xml/rdf

<service rdf:ID="sendmail" >
  <edges>
    <rdf:Bag>
      <rdf:li rdf:resource="#edge-network-sendmail" />
      <rdf:li rdf:resource="#edge-syslog-sendmail" />
    </rdf:Bag>
  </edges>
</service>
 
<edge rdf:ID="edge-network-sendmail" >
  <source rdf:resource="#network"/>
  <target rdf:resource="#sendmail"/>
</edge>
 
<edge rdf:ID="edge-syslog-sendmail" >
  <source rdf:resource="#syslog"/>
  <target rdf:resource="#sendmail"/>
</edge>

Example A-2. special comments in boot scripts

#!/bin/bash
#
# sendmail      This shell script takes care of starting and stopping sendmail.
#
### BEGIN INIT INFO
# Provides: sendmail
# Required-Start: syslog network
### END INIT INFO
#
# ...

Example A-3. Direct use of synchronisation primitives

#!/bin/bash
#
# sendmail      This shell script takes care of starting and stopping sendmail.
# ...
#
if [ $1 = "start" ]; then
    serelc --provide sendmail
    serelc --need syslog
    serelc --need network
   ...
fi
...