home *** CD-ROM | disk | FTP | other *** search
/ ftp.ee.lbl.gov / 2014.05.ftp.ee.lbl.gov.tar / ftp.ee.lbl.gov / acld-1.11.tar.gz / acld-1.11.tar / acld-1.11 / acld.sh.in < prev    next >
Text File  |  2011-05-25  |  2KB  |  93 lines

  1. #!/bin/sh
  2. # @(#) $Id: acld.sh.in 741 2011-05-25 20:04:40Z leres $ (LBL)
  3.  
  4. #
  5. # PROVIDE: acld
  6. #
  7.  
  8. . /etc/rc.subr
  9.  
  10. name="acld"
  11. rcvar=`set_rcvar`
  12. command="acld"
  13. start_cmd="acld_start"
  14. stop_status="acld_status"
  15.  
  16. acldir="/var/log/acld"
  17. PATH="@PREFIX@/libexec:@PREFIX@/sbin:${PATH}"
  18. export PATH
  19.  
  20. pidfile="/var/run/acld/${name}.pid"
  21.  
  22. acld_start() {
  23.     if [ -r ${pidfile} ]; then
  24.         pid="`cat ${pidfile}`"
  25.         if [ -n "${pidfile}" ]; then
  26.             kill -0 ${pid} 2> /dev/null
  27.             if [ $? -eq 0 ]; then
  28.                 echo "${prog}: acld already running (pid ${pid})" 1>&2
  29.                 exit 1
  30.             fi
  31.         fi
  32.     fi
  33.  
  34.     echo "Starting ${name}."
  35.  
  36.     cd ${acldir} || exit 1
  37.  
  38.     sub="acld on `hostname` restarted"
  39.     (while : ; do
  40.         myuser="${acld_user:-zeek}"
  41.  
  42.         rm -f ${pidfile}
  43.         (umask 022 ; touch ${pidfile})
  44.         chown ${myuser}:wheel ${pidfile}
  45.  
  46.         debuglog="/var/log/acld/acld.log"
  47.         if [ ! -f "${debuglog}" ]; then
  48.             (umask 027 ; touch ${debuglog})
  49.         fi
  50.         chown ${myuser}:wheel ${debuglog}
  51.  
  52.         su -fm ${myuser} <<EOF
  53.         acld -f -d -o ${debuglog}
  54. EOF
  55.         xstatus=$?
  56.         if [ "${xstatus}" -gt 128 ]; then
  57.             sig="`expr ${xstatus} - 128`"
  58.             if [ "${sig}" -eq 15 ]; then
  59.                 # SIGTERM -- just exit
  60.                 exit 0
  61.             fi
  62.             msg="[Exited via signal ${sig}]"
  63.         else
  64.             msg="[After exiting with status ${xstatus}]"
  65.         fi
  66.         sleep 10
  67.  
  68.         # Do this every time in case it changes
  69.         . /etc/rc.conf
  70.         notify="${acld_watcher:-root}"
  71.  
  72.         (echo "To: ${notify}"
  73.         echo "Subject: ${sub}"
  74.         echo ""
  75.         echo "${msg}"
  76.         echo ""
  77.         tail -33 ${f}) | sendmail -bm -froot -t
  78.  
  79.     done &) > /dev/null 2>&1
  80. }
  81.  
  82. acld_status() {
  83.     f="@PREFIX@/libexec/acl.exp"
  84.     if [ ! -r ${f} ]; then
  85.         echo "$0: Can't find ${f}" 1>&2
  86.         exit 1
  87.     fi
  88.     ${f} state
  89. }
  90.  
  91. load_rc_config ${name}
  92. run_rc_command "$1"
  93.