home *** CD-ROM | disk | FTP | other *** search
/ ftp.ac-grenoble.fr / 2015.02.ftp.ac-grenoble.fr.tar / ftp.ac-grenoble.fr / pub / slis / security / confickermon / cfmon_init_slis41 < prev    next >
Text File  |  2009-02-10  |  4KB  |  140 lines

  1. #! /bin/sh
  2. # Author: Luc Milland <luc@ac-grenoble.fr>
  3. #
  4.  
  5. PATH=/sbin:/usr/sbin:/bin:/usr/bin
  6. DESC="monitor of conficker worm and friends activities"
  7. NAME=confickermon
  8. DAEMON=/usr/local/sbin/$NAME.py
  9. DAEMON_ARGS=""
  10. PIDFILE=/var/run/$NAME.pid
  11. SCRIPTNAME=/etc/init.d/$NAME
  12.  
  13. # Exit if the package is not installed
  14. [ -x "$DAEMON" ] || exit 0
  15.  
  16. # Read configuration variable file if it is present
  17. [ -r /etc/default/$NAME ] && . /etc/default/$NAME
  18.  
  19. # Load the VERBOSE setting and other rcS variables
  20. . /lib/init/vars.sh
  21.  
  22. # Define LSB log_* functions.
  23. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
  24. . /lib/lsb/init-functions
  25.  
  26. #
  27. # Function that starts the daemon/service
  28. #
  29. do_start()
  30. {
  31.     # Return
  32.     #   0 if daemon has been started
  33.     #   1 if daemon was already running
  34.     #   2 if daemon could not be started
  35.     start-stop-daemon --start --quiet --pidfile $PIDFILE --background --make-pidfile --exec $DAEMON --test > /dev/null \
  36.         || return 1
  37.     start-stop-daemon --start --quiet --pidfile $PIDFILE --background --make-pidfile --exec $DAEMON -- \
  38.         $DAEMON_ARGS \
  39.         || return 2
  40.     # Add code here, if necessary, that waits for the process to be ready
  41.     # to handle requests from services started subsequently which depend
  42.     # on this one.  As a last resort, sleep for some time.
  43. }
  44.  
  45. #
  46. # Function that stops the daemon/service
  47. #
  48. do_stop()
  49. {
  50.     # Return
  51.     #   0 if daemon has been stopped
  52.     #   1 if daemon was already stopped
  53.     #   2 if daemon could not be stopped
  54.     #   other if a failure occurred
  55.     start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
  56.     RETVAL="$?"
  57.     [ "$RETVAL" = 2 ] && return 2
  58.     # Wait for children to finish too if this is a daemon that forks
  59.     # and if the daemon is only ever run from this initscript.
  60.     # If the above conditions are not satisfied then add some other code
  61.     # that waits for the process to drop all resources that could be
  62.     # needed by services started subsequently.  A last resort is to
  63.     # sleep for some time.
  64.     start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
  65.     [ "$?" = 2 ] && return 2
  66.     # Many daemons don't delete their pidfiles when they exit.
  67.     rm -f $PIDFILE
  68.     return "$RETVAL"
  69. }
  70.  
  71. #
  72. # Function that sends a SIGHUP to the daemon/service
  73. #
  74. do_reload() {
  75.     #
  76.     # If the daemon can reload its configuration without
  77.     # restarting (for example, when it is sent a SIGHUP),
  78.     # then implement that here.
  79.     #
  80.     start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
  81.     return 0
  82. }
  83.  
  84. case "$1" in
  85.   start)
  86.     [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
  87.     do_start
  88.     case "$?" in
  89.         0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  90.         2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  91.     esac
  92.     ;;
  93.   stop)
  94.     [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
  95.     do_stop
  96.     case "$?" in
  97.         0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  98.         2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  99.     esac
  100.     ;;
  101.   #reload|force-reload)
  102.     #
  103.     # If do_reload() is not implemented then leave this commented out
  104.     # and leave 'force-reload' as an alias for 'restart'.
  105.     #
  106.     #log_daemon_msg "Reloading $DESC" "$NAME"
  107.     #do_reload
  108.     #log_end_msg $?
  109.     #;;
  110.   restart|force-reload)
  111.     #
  112.     # If the "reload" option is implemented then remove the
  113.     # 'force-reload' alias
  114.     #
  115.     log_daemon_msg "Restarting $DESC" "$NAME"
  116.     do_stop
  117.     case "$?" in
  118.       0|1)
  119.         do_start
  120.         case "$?" in
  121.             0) log_end_msg 0 ;;
  122.             1) log_end_msg 1 ;; # Old process is still running
  123.             *) log_end_msg 1 ;; # Failed to start
  124.         esac
  125.         ;;
  126.       *)
  127.           # Failed to stop
  128.         log_end_msg 1
  129.         ;;
  130.     esac
  131.     ;;
  132.   *)
  133.     #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
  134.     echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
  135.     exit 3
  136.     ;;
  137. esac
  138.  
  139. :
  140.