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 / portmap < prev    next >
Text File  |  2006-11-29  |  4KB  |  134 lines

  1. #! /bin/sh
  2. # Copyright (c) 2000, 2001 SuSE GmbH Nuernberg, Germany.  All rights reserved.
  3. #
  4. # Author: Thorsten Kukuk <kukuk@suse.de>
  5. #
  6. # /etc/init.d/portmap
  7. #
  8. #   and symbolic its link
  9. #
  10. # /sbin/rcportmap
  11. #
  12. # System startup script for the RPC program number mapper
  13. #
  14. ### BEGIN INIT INFO
  15. # Provides: portmap
  16. # Required-Start: $network $syslog
  17. # Required-Stop: $network $syslog
  18. # Default-Start: 3 5
  19. # Default-Stop: 0 1 2 4 6
  20. # Description: DARPA port to RPC program number mapper
  21. ### END INIT INFO
  22.  
  23. PORTMAP_BIN=/sbin/portmap
  24. test -x $PORTMAP_BIN || exit 5
  25.  
  26. # Shell functions sourced from /etc/rc.status:
  27. #      rc_check         check and set local and overall rc status
  28. #      rc_status        check and set local and overall rc status
  29. #      rc_status -v     ditto but be verbose in local rc status
  30. #      rc_status -v -r  ditto and clear the local rc status
  31. #      rc_failed        set local and overall rc status to failed
  32. #      rc_reset         clear local rc status (overall remains)
  33. #      rc_exit          exit appropriate to overall rc status
  34. . /etc/rc.status
  35.  
  36. PORTMAP_OPTIONS=
  37. . /etc/sysconfig/portmap
  38.  
  39. # First reset status of this service
  40. rc_reset
  41.  
  42. # Return values acc. to LSB for all commands but status:
  43. # 0 - success
  44. # 1 - misc error
  45. # 2 - invalid or excess args
  46. # 3 - unimplemented feature (e.g. reload)
  47. # 4 - insufficient privilege
  48. # 5 - program not installed
  49. # 6 - program not configured
  50. # 7 - program is not running
  51. #
  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 RPC portmap daemon"
  60.     startproc $PORTMAP_BIN $PORTMAP_OPTIONS
  61.         rc_status -v
  62.     ;;
  63.     stop)
  64.     echo -n "Shutting down RPC portmap daemon"
  65.     killproc -TERM $PORTMAP_BIN
  66.     rc_status -v
  67.     ;;
  68.     try-restart)
  69.         ## Do a restart only if the service was active before.
  70.         $0 status >/dev/null && $0 restart
  71.  
  72.         # Remember status and be quiet
  73.         rc_status
  74.         ;;
  75.     restart)
  76.         ## Stop the service and regardless of whether it was
  77.         ## running or not, start it again.
  78.         pmap_dump > /var/run/portmap.state
  79.         $0 stop
  80.         $0 start
  81.     pmap_set < /var/run/portmap.state
  82.     rm -f /var/run/portmap.state
  83.  
  84.         # Remember status and be quiet
  85.         rc_status
  86.         ;;
  87.     force-reload)
  88.         ## Signal the daemon to reload its config. Most daemons
  89.         ## do this on signal 1 (SIGHUP).
  90.         ## If it does not support it, restart.
  91.  
  92.         echo -n "Reload RPC portmap daemon"
  93.         ## if it supports it:
  94.         #killproc -HUP $PORTMAP_BIN
  95.         #rc_status -v
  96.  
  97.         ## Otherwise:
  98.         pmap_dump > /var/run/portmap.state
  99.         $0 stop
  100.         $0 start
  101.     pmap_set < /var/run/portmap.state
  102.     rm -f /var/run/portmap.state
  103.  
  104.         # Remember status and be quiet
  105.         rc_status
  106.         ;;
  107.     reload)
  108.     # portmap does not support SIGHUP signaling
  109.         echo -n "Reload RPC portmap daemon"
  110.     rc_failed 3
  111.         rc_status -v
  112.         ;;
  113.     status)
  114.         echo -n "Checking for RPC portmap daemon: "
  115.         ## Check status with checkproc(8), if process is running
  116.         ## checkproc will return with exit status 0.
  117.  
  118.         # Status has a slightly different for the status command:
  119.         # 0 - service running
  120.         # 1 - service dead, but /var/run/  pid  file exists
  121.         # 2 - service dead, but /var/lock/ lock file exists
  122.         # 3 - service not running
  123.  
  124.         checkproc $PORTMAP_BIN
  125.         rc_status -v
  126.         ;;
  127.     *)
  128.     echo "Usage: $0 {start|stop|restart|force-reload|reload|status}"
  129.     exit 1
  130.     ;;
  131. esac
  132. rc_exit
  133.  
  134.