home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / rescue / etc / init.d / rsyncd < prev    next >
Text File  |  2006-11-29  |  4KB  |  138 lines

  1. #! /bin/sh
  2. # Copyright (c) 1996, 1997, 1998 S.u.S.E. GmbH
  3. # Copyright (c) 1998, 1999, 2000, 2001 SuSE GmbH
  4. # Copyright (c) 2002 SuSE Linux AG
  5. #
  6. # Author: Kurt Garloff <feedback@suse.de>
  7. #
  8. # init.d/rsyncd
  9. #
  10. #   and symbolic its link
  11. #
  12. # /sbin/rcrsyncd
  13. #
  14. # System startup script for the rsync daemon
  15. #
  16. ### BEGIN INIT INFO
  17. # Provides: rsync
  18. # Required-Start: $remote_fs $syslog
  19. # Required-Stop:  $remote_fs $syslog
  20. # X-UnitedLinux-Should-Start: slpd
  21. # Default-Start:  3 5
  22. # Default-Stop:   0 1 2 6
  23. # Description:    Start the rsync server daemon
  24. ### END INIT INFO
  25.  
  26. RSYNCD_BIN=/usr/sbin/rsyncd
  27. test -x $RSYNCD_BIN || exit 5
  28.  
  29. # Shell functions sourced from /etc/rc.status:
  30. #      rc_check         check and set local and overall rc status
  31. #      rc_status        check and set local and overall rc status
  32. #      rc_status -v     ditto but be verbose in local rc status
  33. #      rc_status -v -r  ditto and clear the local rc status
  34. #      rc_failed        set local and overall rc status to failed
  35. #      rc_failed <num>  set local and overall rc status to <num><num>
  36. #      rc_reset         clear local rc status (overall remains)
  37. #      rc_exit          exit appropriate to overall rc status
  38. . /etc/rc.status
  39.  
  40. # First reset status of this service
  41. rc_reset
  42.  
  43. # Return values acc. to LSB for all commands but status:
  44. # 0 - success
  45. # 1 - generic or unspecified error
  46. # 2 - invalid or excess argument(s)
  47. # 3 - unimplemented feature (e.g. "reload")
  48. # 4 - insufficient privilege
  49. # 5 - program is not installed
  50. # 6 - program is not configured
  51. # 7 - program is not running
  52. # Note that starting an already running service, stopping
  53. # or restarting a not-running service as well as the restart
  54. # with force-reload (in case signalling is not supported) are
  55. # considered a success.
  56.  
  57. case "$1" in
  58.     start)
  59.     echo -n "Starting rsync daemon"
  60.     ## Start daemon with startproc(8). If this fails
  61.     ## the echo return value is set appropriate.
  62.  
  63.     # NOTE: startproc return 0, even if service is 
  64.     # already running to match LSB spec.
  65.     startproc -t 1 $RSYNCD_BIN --daemon
  66.  
  67.     # Remember status and be verbose
  68.     rc_status -v
  69.     ;;
  70.     stop)
  71.     echo -n "Shutting down rsync daemon"
  72.     ## Stop daemon with killproc(8) and if this fails
  73.     ## set echo the echo return value.
  74.  
  75.     killproc -TERM $RSYNCD_BIN
  76.  
  77.     # Remember status and be verbose
  78.     rc_status -v
  79.     ;;
  80.     try-restart)
  81.     ## Stop the service and if this succeeds (i.e. the 
  82.     ## service was running before), start it again.
  83.     ## Note: try-restart is not (yet) part of LSB (as of 0.7.5)
  84.     $0 status >/dev/null &&  $0 restart
  85.  
  86.     # Remember status and be quiet
  87.     rc_status
  88.     ;;
  89.     restart)
  90.     ## Stop the service and regardless of whether it was
  91.     ## running or not, start it again.
  92.     $0 stop
  93.     $0 start
  94.  
  95.     # Remember status and be quiet
  96.     rc_status
  97.     ;;
  98.     force-reload)
  99.     ## Signal the daemon to reload its config. Most daemons
  100.     ## do this on signal 1 (SIGHUP).
  101.     ## If it does not support it, restart.
  102.  
  103.     echo -n "Reload service rsync"
  104.     killproc -HUP $RSYNCD_BIN
  105.     rc_status -v
  106.     ;;
  107.     reload)
  108.     ## Like force-reload, but if daemon does not support
  109.     ## signalling, do nothing (!)
  110.  
  111.     # If it supports signalling:
  112.     echo -n "Reload service rsync"
  113.     killproc -HUP $RSYNCD_BIN
  114.     rc_status -v
  115.     ;;
  116.     status)
  117.     echo -n "Checking for rsync daemon: "
  118.     ## Check status with checkproc(8), if process is running
  119.     ## checkproc will return with exit status 0.
  120.  
  121.     # Status has a slightly different for the status command:
  122.     # 0 - service running
  123.     # 1 - service dead, but /var/run/  pid  file exists
  124.     # 2 - service dead, but /var/lock/ lock file exists
  125.     # 3 - service not running
  126.  
  127.     # NOTE: checkproc returns LSB compliant status values.
  128.     checkproc $RSYNCD_BIN
  129.     rc_status -v
  130.     ;;
  131.     *)
  132.     echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
  133.     exit 1
  134.     ;;
  135. esac
  136. rc_exit
  137.