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

From ArchWiki
Jump to: navigation, search
(New page: 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 ...)
 
Line 9: Line 9:
 
/etc/rc.d/tftpd
 
/etc/rc.d/tftpd
 
   
 
   
#!/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 45:
 
   *)
 
   *)
 
     echo "usage: $0 {start|stop|restart}"   
 
     echo "usage: $0 {start|stop|restart}"   
esac
+
esac
exit 0
+
exit 0

Revision as of 10:58, 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