Advertisement
Guest User

Untitled

a guest
May 18th, 2011
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.75 KB | None | 0 0
  1. #! /bin/sh
  2. ### BEGIN INIT INFO
  3. # Provides:          tcpdump
  4. # Required-Start:    $remote_fs $network
  5. # Required-Stop:     $remote_fs $network
  6. # Default-Start:     2 3 4 5
  7. # Default-Stop:      0 1 6
  8. # Short-Description: start/stop packet capture using tcpdump
  9. # Description:       start/stop packet capture using tcpdump
  10. #                    
  11. ### END INIT INFO
  12.  
  13. # Author: Michael Fung  www.3open.org
  14. # Last Update: 2010-01-21
  15.  
  16. # PATH should only include /usr/* if it runs after the mountnfs.sh script
  17. PATH=/sbin:/usr/sbin:/bin:/usr/bin
  18. DESC="packet catpure using tcpdump"
  19. NAME=tcpdump
  20. DAEMON=/usr/sbin/$NAME
  21. DAEMON_ARGS="-i eth1 -w /home/packetlog/$(hostname)_%G-%m-%d_%H:%M.cap -s 90 -G 1800 -z gzip"
  22. PIDFILE=/var/run/$NAME.pid
  23. SCRIPTNAME=/etc/init.d/$NAME
  24.  
  25. # Exit if the package is not installed
  26. [ -x "$DAEMON" ] || exit 0
  27.  
  28. # Read configuration variable file if it is present
  29. [ -r /etc/default/$NAME ] && . /etc/default/$NAME
  30.  
  31. # Load the VERBOSE setting and other rcS variables
  32. . /lib/init/vars.sh
  33.  
  34. # Define LSB log_* functions.
  35. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
  36. . /lib/lsb/init-functions
  37.  
  38. #
  39. # Function that starts the daemon/service
  40. #
  41. do_start()
  42. {
  43.     # Return
  44.     #   0 if daemon has been started
  45.     #   1 if daemon was already running
  46.     #   2 if daemon could not be started
  47.     start-stop-daemon --start --quiet --pidfile $PIDFILE --background --make-pidfile --exec $DAEMON --test > /dev/null \
  48.         || return 1
  49.     start-stop-daemon --start --quiet --pidfile $PIDFILE --background --make-pidfile --background --exec $DAEMON -- \
  50.         $DAEMON_ARGS \
  51.         || return 2
  52.     # Add code here, if necessary, that waits for the process to be ready
  53.     # to handle requests from services started subsequently which depend
  54.     # on this one.  As a last resort, sleep for some time.
  55. }
  56.  
  57. #
  58. # Function that stops the daemon/service
  59. #
  60. do_stop()
  61. {
  62.     # Return
  63.     #   0 if daemon has been stopped
  64.     #   1 if daemon was already stopped
  65.     #   2 if daemon could not be stopped
  66.     #   other if a failure occurred
  67.     start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
  68.     RETVAL="$?"
  69.     [ "$RETVAL" = 2 ] && return 2
  70.     # Wait for children to finish too if this is a daemon that forks
  71.     # and if the daemon is only ever run from this initscript.
  72.     # If the above conditions are not satisfied then add some other code
  73.     # that waits for the process to drop all resources that could be
  74.     # needed by services started subsequently.  A last resort is to
  75.     # sleep for some time.
  76.     start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
  77.     [ "$?" = 2 ] && return 2
  78.     # Many daemons don't delete their pidfiles when they exit.
  79.     rm -f $PIDFILE
  80.     return "$RETVAL"
  81. }
  82.  
  83. #
  84. # Function that sends a SIGHUP to the daemon/service
  85. #
  86. case "$1" in
  87.   start)
  88.     [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
  89.     do_start
  90.     case "$?" in
  91.         0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  92.         2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  93.     esac
  94.     ;;
  95.   stop)
  96.     [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
  97.     do_stop
  98.     case "$?" in
  99.         0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  100.         2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  101.     esac
  102.     ;;
  103.   restart|force-reload)
  104.     #
  105.     # If the "reload" option is implemented then remove the
  106.     # 'force-reload' alias
  107.     #
  108.     log_daemon_msg "Restarting $DESC" "$NAME"
  109.     do_stop
  110.     case "$?" in
  111.       0|1)
  112.         do_start
  113.         case "$?" in
  114.             0) log_end_msg 0 ;;
  115.             1) log_end_msg 1 ;; # Old process is still running
  116.             *) log_end_msg 1 ;; # Failed to start
  117.         esac
  118.         ;;
  119.       *)
  120.         # Failed to stop
  121.         log_end_msg 1
  122.         ;;
  123.     esac
  124.     ;;
  125.   *)
  126.     #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
  127.     echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
  128.     exit 3
  129.     ;;
  130. esac
  131.  
  132. :
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement