Je te conseille de regarder mieux comment sont fait des vrai systeme d'init base sur des script shell comme OpenRC avant de dire de telle anneries.
Comment tu fait un tel script d'init avec un truc aussi rigide que systemd:
#!/sbin/runscript
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/openssh/files/sshd.rc6.4,v 1.3 2013/04/24 03:13:03 vapier Exp $
extra_commands="checkconfig"
extra_started_commands="reload"
SSHD_CONFDIR=${SSHD_CONFDIR:-/etc/ssh}
SSHD_CONFIG=${SSHD_CONFIG:-${SSHD_CONFDIR}/sshd_config}
SSHD_PIDFILE=${SSHD_PIDFILE:-/var/run/${SVCNAME}.pid}
SSHD_BINARY=${SSHD_BINARY:-/usr/sbin/sshd}
depend() {
use logger dns
if [ "${rc_need+set}" = "set" ]; then
: # Do nothing, the user has explicitly set rc_need
else
warn_addr=''
for x in $(awk '/^ListenAddress/{ print $2 }' "$SSHD_CONFIG" 2>/dev/null) ; do
case "$x" in
0.0.0.0|0.0.0.0:*) ;;
::|\[::\]*) ;;
*) warn_addr="${warn_addr} $x" ;;
esac
done
unset x
if [ "${warn_addr:+set}" = "set" ]; then
need net
ewarn "You are binding an interface in ListenAddress statement in your sshd_config!"
ewarn "You must add rc_need=\"net.FOO\" to your /etc/conf.d/sshd"
ewarn "where FOO is the interface(s) providing the following address(es):"
ewarn "${warn_addr}"
fi
unset warn_addr
fi
}
checkconfig() {
if [ ! -d /var/empty ] ; then
mkdir -p /var/empty || return 1
fi
if [ ! -e "${SSHD_CONFDIR}"/sshd_config ] ; then
eerror "You need an ${SSHD_CONFDIR}/sshd_config file to run sshd"
eerror "There is a sample file in /usr/share/doc/openssh"
return 1
fi
ssh-keygen -A || return 1
[ "${SSHD_PIDFILE}" != "/var/run/sshd.pid" ] \
&& SSHD_OPTS="${SSHD_OPTS} -o PidFile=${SSHD_PIDFILE}"
[ "${SSHD_CONFDIR}" != "/etc/ssh" ] \
&& SSHD_OPTS="${SSHD_OPTS} -f ${SSHD_CONFDIR}/sshd_config"
"${SSHD_BINARY}" -t ${SSHD_OPTS} || return 1
}
start() {
checkconfig || return 1
ebegin "Starting ${SVCNAME}"
start-stop-daemon --start --exec "${SSHD_BINARY}" \
--pidfile "${SSHD_PIDFILE}" \
-- ${SSHD_OPTS}
eend $?
}
stop() {
if [ "${RC_CMD}" = "restart" ] ; then
checkconfig || return 1
fi
ebegin "Stopping ${SVCNAME}"
start-stop-daemon --stop --exec "${SSHD_BINARY}" \
--pidfile "${SSHD_PIDFILE}" --quiet
eend $?
}
reload() {
checkconfig || return 1
ebegin "Reloading ${SVCNAME}"
start-stop-daemon --signal HUP \
--exec "${SSHD_BINARY}" --pidfile "${SSHD_PIDFILE}"
eend $?
}
Oui les script shell peuvent sembler un peu illisible des qu'on joue avec les variables, mais c'est bien plus souple qu'un truc qui ne fait que lancer/arreter un executable, au poins qu'avec systemd on est oblige de lancer des script shell pour pouvoir faire la meme chose ouéééééé
Et le script la pour sshd n'est pas un des plus complexe, celui pour apache fait plus de trucs, dont des tests de verifications sur les fichiers de configs, etc...
SystemD, le seul moyen? soit lancer un script shell externe, soit faire un module a compiler pour le bousin

C'est pratique n'est-ce pas?
Je m’abstiendrais de parler encore une fois des choses que systemd fait qu'il ne devrait pas faire, la lourdeur du machin pour tout ce qui n'est pas PC high-end, ni de la difficulté accrue pour la maintenance d'un serveur grace a systemd etc..