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

  1. #! /bin/bash
  2. #
  3. # Copyright (c) 2002-2004 SuSE Linux AG Nuernberg, Germany.
  4. # All rights reserved.
  5. #
  6. # This program is free software; you can redistribute it and/or modify it under
  7. # the terms of the GNU General Public License as published by the Free Software
  8. # Foundation; either version 2 of the License, or (at your option) any later
  9. # version.
  10. #
  11. # This program is distributed in the hope that it will be useful, but WITHOUT
  12. # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  13. # FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
  14. # details.
  15. #
  16. # You should have received a copy of the GNU General Public License along with
  17. # this program; if not, write to the Free Software Foundation, Inc., 59 Temple
  18. # Place, Suite 330, Boston, MA 02111-1307 USA
  19. #
  20. # Authors: Christian Zoz <zoz@suse.de>
  21. #
  22. # $Id: ifup-services 1370 2006-01-23 15:31:15Z zoz $
  23. #
  24.  
  25. usage () {
  26.     echo $@
  27.     echo "Usage: if{up,down,status}-services [<config>] <hwdesc> [-o <options>]"
  28.     echo "  hwdesc may be the interface name or any valid description"
  29.     echo "  of the corresponding device, for details see ifup(8)."
  30.     echo "Options are:"
  31.     echo "    [on]boot : we are currently booting (or shutting down)"
  32.     echo "    auto     : alias for boot"
  33.     echo "    hotplug  : we are handling a hotplug event"
  34.     echo "    debug    : be verbose"
  35.     echo "All other or wrong options are silently ignored."
  36.     exit $R_USAGE
  37. }
  38.  
  39. ######################################################################
  40. # change the working direcory and source some common files
  41. #
  42. R_INTERNAL=1      # internal error, e.g. no config or missing scripts
  43. cd /etc/sysconfig/network || exit $R_INTERNAL
  44. test -f ./config && . ./config
  45. test -f scripts/functions && . scripts/functions || exit $R_INTERNAL
  46.  
  47. ######################################################################
  48. # check arguments and how we are called (in case of links)
  49. #
  50. SCRIPTNAME=${0##*/}
  51. ACTION=${SCRIPTNAME#if}
  52. ACTION=${ACTION%%-services}
  53. debug $*
  54. case "${SCRIPTNAME}" in
  55.     ifup-*) true ;;
  56.     ifdown-*) true ;;
  57.     ifstatus-*) true ;;
  58.     *) usage
  59. esac
  60. INTERFACE=$1
  61. case "$INTERFACE" in ""|-h|*help*) usage; esac
  62. shift
  63. if [ -n "$1" -a "$1" != "-o" ] ; then
  64.     CONFIG=$INTERFACE
  65.     INTERFACE=$1
  66. fi
  67. shift
  68. test "$1" = "-o" && shift
  69. OPTIONS="$@"
  70. MODE=manual
  71. while [ $# -gt 0 ]; do
  72.     case $1 in
  73.         boot|onboot) MODE=auto ;;
  74.         hotplug)     MODE=auto ;;
  75.         auto)        MODE=auto ;;
  76.         quiet)       be_quiet_has_gone ;;
  77.         debug)       DEBUG=yes ;;
  78.         *)           debug unknown option $1 ;;
  79.     esac
  80.     shift
  81. done
  82.  
  83. ######################################################################
  84. # get the interface and check if it is available or up
  85. #
  86. # if ! is_iface_available  $INTERFACE ; then
  87. #     logerror "interface ${INTERFACE} is not available"
  88. #     exit $R_NODEV
  89. # fi
  90. # if ! is_iface_up $INTERFACE ; then
  91. #     logerror "interface ${INTERFACE} is not up"
  92. #     exit $R_NOTRUNNING
  93. # fi
  94.  
  95. ######################################################################
  96. # check presence of configuration file and source it
  97. #
  98. test -f ./ifcfg-$CONFIG && . ./ifcfg-$CONFIG
  99. if [ -d "ifservices-$CONFIG" ] ; then
  100.     cd ifservices-$CONFIG
  101. elif [ -d "ifservices-$INTERFACE" ] ; then
  102.     cd ifservices-$INTERFACE
  103. elif [ -d "ifservices-${INTERFACE%%-*}" ] ; then
  104.     cd ifservices-${INTERFACE%%-*}
  105. elif [ -d "ifservices" ] ; then
  106.     cd ifservices
  107. else
  108.     debug "No services to handle for '$CONFIG $INTERFACE'"
  109.     exit 0
  110. fi
  111.  
  112. # expand file pattern below to null string if no file matches
  113. shopt -s nullglob
  114. case $ACTION in
  115.     up)
  116.         message "Starting services from `pwd`:"
  117.         for SERVICE in S*; do
  118.             info_mesg "`./$SERVICE start 2>&1`"
  119.         done
  120.         ;;
  121.     status)
  122.         message "Checking services from `pwd`:"
  123.         for SERVICE in S*; do
  124.             STAT_MSG="is inactive"
  125.             SERV_MSG="`./$SERVICE status 2>&1`"
  126.             test $? == 0 && STAT_MSG="is running"
  127.             mesg "    '${SERVICE##S[0-9][0-9]}' $STAT_MSG"
  128.             info_mesg "$SERV_MSG"
  129.         done
  130.         ;;
  131.     down)
  132.         message "Stopping services from `pwd`:"
  133.         for SERVICE in K*; do
  134.             info_mesg "`./$SERVICE stop 2>&1`"
  135.         done
  136.         ;;
  137. esac
  138.