Собственно чтобы не быть голословным, приведу пример простого инит скрипта для acpid, а потом его аналог для systemd.acpid.init:
#!/bin/bash
# /etc/rc.d/init.d/acpid
# Starts the acpi daemon
#
# chkconfig: 3457 14 56
# description: Listen and dispatch ACPI events from the kernel
# processname: acpid
# securlevel: 80
#
### BEGIN INIT INFO
# Provides: acpid
# Default-Start: 3 4 5 7
# Required-Start: $syslog
# Required-Stop: $syslog
# Short-Description: Starts the acpi daemon
# Description: Listen and dispatch ACPI events from the kernel
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
DAEMON=acpi
PROGNAME=${DAEMON}d
test -x /usr/sbin/$PROGNAME || exit 0
RETVAL=0
#
# See how we were called.
#
start() {
# Check if it is already running
if [ ! -f /var/lock/subsys/$PROGNAME ]; then
echo -n "Starting $DAEMON daemon: "
daemon /usr/sbin/$PROGNAME
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$PROGNAME
echo
fi
return $RETVAL
}
stop() {
echo -n "Stopping $DAEMON daemon: "
killproc /usr/sbin/$PROGNAME
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$PROGNAME
echo
return $RETVAL
}
restart() {
stop
start
}
reload() {
trap "" SIGHUP
killall -HUP $PROGNAME
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
condrestart)
if [ -f /var/lock/subsys/$PROGNAME ]; then
restart
fi
;;
status)
status $PROGNAME
;;
*)
INITNAME=`basename $0`
echo "Usage: $INITNAME {start|stop|restart|condrestart|status}"
exit 1
esac
exit $RETVAL
---
acpid.service:
[Unit]
Description=ACPI Event Daemon
After=syslog.target
[Service]
Type=forking
ExecStart=/usr/sbin/acpid
[Install]
WantedBy=multi-user.target