Writing rc.d scripts
From ArchWiki
Naming scheme
The name of the rc.d script should follow the name of the executable, not the name of the package. It must reflect what it's going to do.
Requirements
- If a daemon accepts arguments, the script must have its equivalent in /etc/conf.d.
- The rc.d script must have at least three methods, being start, stop and restart.
Example
A proper example for tftpd:
/etc/conf.d/tftpd:
TFTPD_ARGS="-l -s /var/tftpboot -c"
/etc/rc.d/tftpd
#!/bin/bash . /etc/rc.conf . /etc/rc.d/functions TFTPD_ARGS= [ -f /etc/conf.d/tftpd ] && . /etc/conf.d/tftpd PID=`pidof -o %PPID /usr/sbin/in.tftpd` case "$1" in start) stat_busy "Starting TFTPD" [ -z "$PID" ] && /usr/sbin/in.tftpd ${TFTPD_ARGS} if [ $? -gt 0 ]; then stat_fail else add_daemon in.tftpd stat_done fi ;; stop) stat_busy "Stopping TFTPD" [ ! -z "$PID" ] && kill $PID &> /dev/null if [ $? -gt 0 ]; then stat_fail else rm_daemon in.tftpd stat_done fi ;; restart) $0 stop $0 start ;; *) echo "usage: $0 {start|stop|restart}" esac exit 0