Initscripts/Writing rc.d scripts

From ArchWiki
Revision as of 10:59, 5 December 2008 by RedShift (Talk | contribs)

Jump to: navigation, search

If a daemon accepts arguments, the script must have its equivalent in /etc/conf.d.


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