CVS: initscripts/rc.d/init.d functions,1.1.1.1,1.2

Jasper Huysmans jasper at lunar-linux.org
Thu Oct 30 14:10:29 GMT 2003


Update of /var/cvs/lunar/initscripts/rc.d/init.d
In directory dbguin.lunar-linux.org:/tmp/cvs-serv30780

Modified Files:
	functions 
Log Message:
Add some comments. A few very small tweaks. Reindenting stuff to be the same for all functions (this makes the diff much bigger than was really necessary, sorry).

Index: functions
===================================================================
RCS file: /var/cvs/lunar/initscripts/rc.d/init.d/functions,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- functions	26 Oct 2003 17:14:43 -0000	1.1.1.1
+++ functions	30 Oct 2003 14:10:27 -0000	1.2
@@ -3,6 +3,29 @@
 # functions	This file contains functions to be used by most or all
 #		shell scripts in the /etc/init.d directory.
 #
+# checkpid() 
+# daemon() 
+# killproc() 
+# pidfileofproc() 
+# pidofproc() 
+# status() 
+# echo_success() 
+# echo_failure() 
+# echo_passed() 
+# echo_warning() 
+# update_boot_stage() 
+# success() 
+# failure() 
+# passed() 
+# warning() 
+# action() 
+# strstr() 
+# confirm() 
+#
+# Besides the function definitions it will set up a safe environment, 
+# source the configuration files for startup (/etc/sysconfig/init) and 
+# system locale (/etc/sysconfig/i18n) and check the console type.
+#
 
 TEXTDOMAIN=initscripts
 
@@ -20,24 +43,32 @@
 
 if [ -f /etc/sysconfig/i18n -a -z "${NOLOCALE:-}" ] ; then
   . /etc/sysconfig/i18n
+
   if [ "$CONSOLETYPE" != "pty" ]; then
-	case "${LANG:-}" in
-		ja_JP*|ko_KR*|zh_CN*|zh_TW*)
-			export LC_MESSAGES=en_US
-			;;
-		*)
-			export LANG
-			;;
-	esac
-  else
+    case "${LANG:-}" in
+      ja_JP*|ko_KR*|zh_CN*|zh_TW*)
+	export LC_MESSAGES=en_US
+	;;
+      *)
 	export LANG
+	;;
+    esac
+  else
+    export LANG
   fi
 fi
 
 # Read in our configuration
 if [ -z "${BOOTUP:-}" ]; then
-  if [ -f /etc/sysconfig/init ]; then
-      . /etc/sysconfig/init
+  if [ "$CONSOLETYPE" = "serial" ]; then
+    BOOTUP=serial
+    MOVE_TO_COL=
+    SETCOLOR_SUCCESS=
+    SETCOLOR_FAILURE=
+    SETCOLOR_WARNING=
+    SETCOLOR_NORMAL=
+  elif [ -f /etc/sysconfig/init ]; then
+    . /etc/sysconfig/init
   else
     # This all seem confusing? Look in /etc/sysconfig/init,
     # or in /usr/doc/initscripts-*/sysconfig.txt
@@ -50,264 +81,263 @@
     SETCOLOR_NORMAL="echo -en \\033[0;39m"
     LOGLEVEL=1
   fi
-  if [ "$CONSOLETYPE" = "serial" ]; then
-      BOOTUP=serial
-      MOVE_TO_COL=
-      SETCOLOR_SUCCESS=
-      SETCOLOR_FAILURE=
-      SETCOLOR_WARNING=
-      SETCOLOR_NORMAL=
-  fi
 fi
 
 if [ "${BOOTUP:-}" != "verbose" ]; then
-   INITLOG_ARGS="-q"
+  INITLOG_ARGS="-q"
 else
-   INITLOG_ARGS=
+  INITLOG_ARGS=
 fi
 
 # Check if $pid (could be plural) are running
 checkpid() {
-	local i
+  local i
 
-	for i in $* ; do
-		[ -d "/proc/$i" ] || return 1
-	done
-	return 0
+  for i in $* ; do
+    [ -d "/proc/$i" ] || return 1
+  done
+  return 0
 }
-	
+
 
 # A function to start a program.
 daemon() {
-	# Test syntax.
-	local gotbase= force=
-	local base= user= nice= bg= pid=
-	nicelevel=0
-	while [ "$1" != "${1##[-+]}" ]; do
-	  case $1 in
-	    '')    echo $"$0: Usage: daemon [+/-nicelevel] {program}"
-	           return 1;;
-	    --check)
-		   base=$2
-		   gotbase="yes"
-		   shift 2
-		   ;;
-	    --check=?*)
-	    	   base=${1#--check=}
-		   gotbase="yes"
-		   shift
-		   ;;
-	    --user)
-		   user=$2
-		   shift 2
-		   ;;
-	    --user=?*)
-	           user=${1#--user=}
-		   shift
-		   ;;
-	    --force)
-	    	   force="force"
-		   shift
-		   ;;
-	    [-+][0-9]*)
-	    	   nice="nice -n $1"
-	           shift
-		   ;;
-	    *)     echo $"$0: Usage: daemon [+/-nicelevel] {program}"
-	           return 1;;
-	  esac
-	done
+  local gotbase= force=
+  local base= user= nice= bg= pid=
 
-        # Save basename.
-        [ -z "$gotbase" ] && base=${1##*/}
+  # Test syntax.
+  if [ "$#" -eq 0 ]; then
+    echo $"$0: Usage: daemon [+/-nicelevel] {program}"
+    return 1
+  fi
 
-        # See if it's already running. Look *only* at the pid file.
-	if [ -f /var/run/${base}.pid ]; then
-		local line p
-		read line < /var/run/${base}.pid
-		for p in $line ; do
-			[ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && pid="$pid $p"
-		done
-	fi
-	
-	[ -n "${pid:-}" -a -z "${force:-}" ] && return
+  while [ "$1" != "${1##[-+]}" ]; do
+    case $1 in
+      --check)
+	base=$2
+	gotbase="yes"
+	shift 2
+	;;
+      --check=?*)
+	base=${1#--check=}
+	gotbase="yes"
+	shift
+	;;
+      --user)
+	user=$2
+	shift 2
+	;;
+      --user=?*)
+	user=${1#--user=}
+	shift
+	;;
+      --force)
+	force="force"
+	shift
+	;;
+      [-+][0-9]*)
+	nice="nice -n $1"
+	shift
+	;;
+      *)     echo $"$0: Usage: daemon [+/-nicelevel] {program}"
+	return 1;;
+    esac
+  done
 
-	# make sure it doesn't core dump anywhere; while this could mask
-	# problems with the daemon, it also closes some security problems
-	ulimit -S -c 0 >/dev/null 2>&1
-	
-	# if they set NICELEVEL in /etc/sysconfig/foo, honor it
-	[ -n "$NICELEVEL" ] && nice="nice -n $NICELEVEL"
-	
-	# Echo daemon
-        [ "${BOOTUP:-}" = "verbose" -a -z "$LSB" ] && echo -n " $base"
+  # Save basename.
+  [ -z "$gotbase" ] && base=${1##*/}
 
-	# And start it up.
-	if [ -z "$user" ]; then
-	   $nice initlog $INITLOG_ARGS -c "$*"
-	else
-	   $nice initlog $INITLOG_ARGS -c "su -s /bin/bash - $user -c \"$*\""
-	fi
-	[ "$?" -eq 0 ] && success $"$base startup" || failure $"$base startup"
+  # See if it's already running unless 'force' is defined. 
+  # Look *only* at the pid file.
+  if [ -z "${force}" -a -f /var/run/${base}.pid ]; then
+    local line p
+    read line < /var/run/${base}.pid
+    for p in $line ; do
+      [ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && return
+    done
+  fi
+  
+  # make sure it doesn't core dump anywhere; while this could mask
+  # problems with the daemon, it also closes some security problems
+  ulimit -S -c 0 >/dev/null 2>&1
+  
+  # if they set NICELEVEL in /etc/sysconfig/foo, honor it
+  [ -n "$NICELEVEL" ] && nice="nice -n $NICELEVEL"
+  
+  # Echo daemon
+  [ "${BOOTUP:-}" = "verbose" -a -z "$LSB" ] && echo -n " $base"
+
+  # And start it up.
+  if [ -z "$user" ]; then
+    $nice initlog $INITLOG_ARGS -c "$*"
+  else
+    $nice initlog $INITLOG_ARGS -c "su -s /bin/bash - $user -c \"$*\""
+  fi
+
+  [ "$?" -eq 0 ] && success $"$base startup" || failure $"$base startup"
 }
 
 # A function to stop a program.
 killproc() {
-	RC=0
-	# Test syntax.
-	if [ "$#" -eq 0 ]; then
-		echo $"Usage: killproc {program} [signal]"
-		return 1
-	fi
+  RC=0
 
-	notset=0
-	# check for second arg to be kill level
-	if [ -n "$2" ]; then
-		killlevel=$2
-	else
-		notset=1
-		killlevel="-9"
-	fi
+  # Test syntax.
+  if [ "$#" -eq 0 ]; then
+    echo $"Usage: killproc {program} [signal]"
+    return 1
+  fi
 
-        # Save basename.
-        base=${1##*/}
+  notset=0
+  # check for second arg to be kill level
+  if [ -n "$2" ]; then
+    killlevel=$2
+  else
+    notset=1
+    killlevel="-9"
+  fi
 
-        # Find pid.
-	pid=
-	if [ -f /var/run/${base}.pid ]; then
-		local line p
-		read line < /var/run/${base}.pid
-		for p in $line ; do
-			[ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && pid="$pid $p"
-		done
-	fi
-	if [ -z "$pid" ]; then
-		pid=`pidof -o $$ -o $PPID -o %PPID -x $1 || \
+  # Save basename.
+  base=${1##*/}
+
+  # Find pid.
+  pid=
+  if [ -f /var/run/${base}.pid ]; then
+    local line p
+    read line < /var/run/${base}.pid
+    for p in $line ; do
+      [ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && pid="$pid $p"
+    done
+  fi
+  if [ -z "$pid" ]; then
+    pid=`pidof -o $$ -o $PPID -o %PPID -x $1 || \
 			pidof -o $$ -o $PPID -o %PPID -x $base`
-	fi
+  fi
 
-        # Kill it.
-        if [ -n "${pid:-}" ] ; then
-                [ "$BOOTUP" = "verbose" -a -z "$LSB" ] && echo -n "$base "
-		if [ "$notset" -eq "1" ] ; then
-		       if checkpid $pid 2>&1; then
-			   # TERM first, then KILL if not dead
-			   kill -TERM $pid
-			   usleep 100000
-			   if checkpid $pid && sleep 1 &&
-			      checkpid $pid && sleep 3 &&
-			      checkpid $pid ; then
-                                kill -KILL $pid
-				usleep 100000
-			   fi
-		        fi
-			checkpid $pid
-			RC=$?
-			[ "$RC" -eq 0 ] && failure $"$base shutdown" || success $"$base shutdown"
-			RC=$((! $RC))
-		# use specified level only
-		else
-		        if checkpid $pid; then
-	                	kill $killlevel $pid
-				RC=$?
-				[ "$RC" -eq 0 ] && success $"$base $killlevel" || failure $"$base $killlevel"
-			fi
-		fi
-	else
-	    failure $"$base shutdown"
-	    RC=1
+  # Kill it.
+  if [ -n "${pid:-}" ] ; then
+    [ "$BOOTUP" = "verbose" -a -z "$LSB" ] && echo -n "$base "
+    if [ "$notset" -eq "1" ] ; then
+      if checkpid $pid 2>&1; then
+	# TERM first, then KILL if not dead
+	kill -TERM $pid
+	usleep 100000
+	if checkpid $pid && sleep 1 &&
+	  checkpid $pid && sleep 3 &&
+	  checkpid $pid ; then
+          kill -KILL $pid
+	  usleep 100000
 	fi
+      fi
+      checkpid $pid
+      RC=$?
+      [ "$RC" -eq 0 ] && failure $"$base shutdown" || success $"$base shutdown"
+      RC=$((! $RC))
+		# use specified level only
+    else
+      if checkpid $pid; then
+	kill $killlevel $pid
+	RC=$?
+	[ "$RC" -eq 0 ] && success $"$base $killlevel" || failure $"$base $killlevel"
+      fi
+    fi
+  else
+    failure $"$base shutdown"
+    RC=1
+  fi
 
-        # Remove pid file if any.
-	if [ "$notset" = "1" ]; then
-            rm -f /var/run/$base.pid
-	fi
-	return $RC
+  # Remove pid file if any.
+  if [ "$notset" = "1" ]; then
+    rm -f /var/run/$base.pid
+  fi
+
+  return $RC
 }
 
 # A function to find the pid of a program. Looks *only* at the pidfile
 pidfileofproc() {
-	local base=${1##*/}
-	
-	# Test syntax.
-	if [ "$#" = 0 ] ; then
-		echo $"Usage: pidfileofproc {program}"
-		return 1
-	fi
+  local base=${1##*/}
+  
+  # Test syntax.
+  if [ "$#" = 0 ] ; then
+    echo $"Usage: pidfileofproc {program}"
+    return 1
+  fi
 
-	# First try "/var/run/*.pid" files
-	if [ -f /var/run/$base.pid ] ; then
-	        local line p pid=
-		read line < /var/run/$base.pid
-		for p in $line ; do
-		       [ -z "${p//[0-9]/}" -a -d /proc/$p ] && pid="$pid $p"
-		done
-	        if [ -n "$pid" ]; then
-	                echo $pid
-	                return 0
-	        fi
-	fi
+  if [ -f /var/run/$base.pid ] ; then
+    local line p pid=
+    read line < /var/run/$base.pid
+    for p in $line ; do
+      [ -z "${p//[0-9]/}" -a -d /proc/$p ] && pid="$pid $p"
+    done
+    if [ -n "$pid" ]; then
+      echo $pid
+      return 0
+    fi
+  fi
 }
 
 # A function to find the pid of a program.
 pidofproc() {
-	base=${1##*/}
+  base=${1##*/}
 
-	# Test syntax.
-	if [ "$#" = 0 ]; then
-		echo $"Usage: pidofproc {program}"
-		return 1
-	fi
+  # Test syntax.
+  if [ "$#" = 0 ]; then
+    echo $"Usage: pidofproc {program}"
+    return 1
+  fi
 
-	# First try "/var/run/*.pid" files
-	if [ -f /var/run/$base.pid ]; then
-	        local line p pid=
-		read line < /var/run/$base.pid
-		for p in $line ; do
-		       [ -z "${p//[0-9]/}" -a -d /proc/$p ] && pid="$pid $p"
-		done
-	        if [ -n "$pid" ]; then
-	                echo $pid
-	                return 0
-	        fi
-	fi
-	pidof -o $$ -o $PPID -o %PPID -x $1 || \
-		pidof -o $$ -o $PPID -o %PPID -x $base
+  # First try "/var/run/*.pid" files
+  if [ -f /var/run/$base.pid ]; then
+    local line p pid=
+    read line < /var/run/$base.pid
+    for p in $line ; do
+      [ -z "${p//[0-9]/}" -a -d /proc/$p ] && pid="$pid $p"
+    done
+    if [ -n "$pid" ]; then
+      echo $pid
+      return 0
+    fi
+  fi
+
+  pidof -o $$ -o $PPID -o %PPID -x $1 || \
+    pidof -o $$ -o $PPID -o %PPID -x $base
 }
 
 status() {
-	local base=${1##*/}
-	local pid
+  local base=${1##*/}
+  local pid
 
-	# Test syntax.
-	if [ "$#" = 0 ] ; then
-		echo $"Usage: status {program}"
-		return 1
-	fi
+  # Test syntax.
+  if [ "$#" = 0 ] ; then
+    echo $"Usage: status {program}"
+    return 1
+  fi
 
-	# First try "pidof"
-	pid=`pidof -o $$ -o $PPID -o %PPID -x $1 || \
+  # First try "pidof"
+  pid=`pidof -o $$ -o $PPID -o %PPID -x $1 || \
 	     pidof -o $$ -o $PPID -o %PPID -x ${base}`
-	if [ -n "$pid" ]; then
-	        echo $"${base} (pid $pid) is running..."
-	        return 0
-	fi
+  if [ -n "$pid" ]; then
+    echo $"${base} (pid $pid) is running..."
+    return 0
+  fi
 
-	# Next try "/var/run/*.pid" files
-	if [ -f /var/run/${base}.pid ] ; then
-	        read pid < /var/run/${base}.pid
-	        if [ -n "$pid" ]; then
-	                echo $"${base} dead but pid file exists"
-	                return 1
-	        fi
-	fi
-	# See if /var/lock/subsys/${base} exists
-	if [ -f /var/lock/subsys/${base} ]; then
-		echo $"${base} dead but subsys locked"
-		return 2
-	fi
-	echo $"${base} is stopped"
-	return 3
+  # Next try "/var/run/*.pid" files
+  if [ -f /var/run/${base}.pid ] ; then
+    read pid < /var/run/${base}.pid
+    if [ -n "$pid" ]; then
+      echo $"${base} dead but pid file exists"
+      return 1
+    fi
+  fi
+
+  # See if /var/lock/subsys/${base} exists
+  if [ -f /var/lock/subsys/${base} ]; then
+    echo $"${base} dead but subsys locked"
+    return 2
+  fi
+
+  echo $"${base} is stopped"
+  return 3
 }
 
 echo_success() {
@@ -365,12 +395,12 @@
 # Log that something succeeded
 success() {
   if [ -z "${IN_INITLOG:-}" ]; then
-     initlog $INITLOG_ARGS -n $0 -s "$1" -e 1
+    initlog $INITLOG_ARGS -n $0 -s "$1" -e 1
   else
      # silly hack to avoid EPIPE killing rc.sysinit
-     trap "" SIGPIPE
-     echo "$INITLOG_ARGS -n $0 -s \"$1\" -e 1" >&21
-     trap - SIGPIPE
+    trap "" SIGPIPE
+    echo "$INITLOG_ARGS -n $0 -s \"$1\" -e 1" >&21
+    trap - SIGPIPE
   fi
   [ "$BOOTUP" != "verbose" -a -z "$LSB" ] && echo_success
   return 0
@@ -380,11 +410,11 @@
 failure() {
   rc=$?
   if [ -z "${IN_INITLOG:-}" ]; then
-     initlog $INITLOG_ARGS -n $0 -s "$1" -e 2
+    initlog $INITLOG_ARGS -n $0 -s "$1" -e 2
   else
-     trap "" SIGPIPE
-     echo "$INITLOG_ARGS -n $0 -s \"$1\" -e 2" >&21
-     trap - SIGPIPE
+    trap "" SIGPIPE
+    echo "$INITLOG_ARGS -n $0 -s \"$1\" -e 2" >&21
+    trap - SIGPIPE
   fi
   [ "$BOOTUP" != "verbose" -a -z "$LSB" ] && echo_failure
   return $rc
@@ -394,11 +424,11 @@
 passed() {
   rc=$?
   if [ -z "${IN_INITLOG:-}" ]; then
-     initlog $INITLOG_ARGS -n $0 -s "$1" -e 1
+    initlog $INITLOG_ARGS -n $0 -s "$1" -e 1
   else
-     trap "" SIGPIPE
-     echo "$INITLOG_ARGS -n $0 -s \"$1\" -e 1" >&21
-     trap - SIGPIPE
+    trap "" SIGPIPE
+    echo "$INITLOG_ARGS -n $0 -s \"$1\" -e 1" >&21
+    trap - SIGPIPE
   fi
   [ "$BOOTUP" != "verbose" -a -z "$LSB" ] && echo_passed
   return $rc
@@ -408,11 +438,11 @@
 warning() {
   rc=$?
   if [ -z "${IN_INITLOG:-}" ]; then
-     initlog $INITLOG_ARGS -n $0 -s "$1" -e 1
+    initlog $INITLOG_ARGS -n $0 -s "$1" -e 1
   else
-     trap "" SIGPIPE
-     echo "$INITLOG_ARGS -n $0 -s \"$1\" -e 1" >&21
-     trap - SIGPIPE
+    trap "" SIGPIPE
+    echo "$INITLOG_ARGS -n $0 -s \"$1\" -e 1" >&21
+    trap - SIGPIPE
   fi
   [ "$BOOTUP" != "verbose" -a -z "$LSB" ] && echo_warning
   return $rc
@@ -438,15 +468,15 @@
 # Confirm whether we really want to run this service
 confirm() {
   while : ; do 
-      echo -n $"Start service $1 (Y)es/(N)o/(C)ontinue? [Y] "
-      read answer
-      if strstr $"yY" "$answer" || [ "$answer" = "" ] ; then
-         return 0
-      elif strstr $"cC" "$answer" ; then
-	 rm -f /var/run/confirm
-         return 2
-      elif strstr $"nN" "$answer" ; then
-         return 1
-      fi
+    echo -n $"Start service $1 (Y)es/(N)o/(C)ontinue? [Y] "
+    read answer
+    if strstr $"yY" "$answer" || [ "$answer" = "" ] ; then
+      return 0
+    elif strstr $"cC" "$answer" ; then
+      rm -f /var/run/confirm
+      return 2
+    elif strstr $"nN" "$answer" ; then
+      return 1
+    fi
   done
 }




More information about the Lunar-commits mailing list