Difference between revisions of "Initscripts/Writing rc.d scripts"

From ArchWiki
Jump to: navigation, search
Line 10: Line 10:
 
   
 
   
 
  #!/bin/bash
 
  #!/bin/bash
 
+
. /etc/rc.conf
. /etc/rc.conf
+
. /etc/rc.d/functions
. /etc/rc.d/functions
+
TFTPD_ARGS=
 
+
TFTPD_ARGS=
+
 
  [ -f /etc/conf.d/tftpd ] && . /etc/conf.d/tftpd
 
  [ -f /etc/conf.d/tftpd ] && . /etc/conf.d/tftpd
 
+
PID=`pidof -o %PPID /usr/sbin/in.tftpd`
PID=`pidof -o %PPID /usr/sbin/in.tftpd`
+
case "$1" in
case "$1" in
+
 
   start)
 
   start)
 
     stat_busy "Starting TFTPD"
 
     stat_busy "Starting TFTPD"
Line 45: Line 42:
 
   *)
 
   *)
 
     echo "usage: $0 {start|stop|restart}"   
 
     echo "usage: $0 {start|stop|restart}"   
esac
+
esac
exit 0
+
exit 0

Revision as of 10:59, 5 December 2008

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