File rcsalinfo_decode of Package salinfo

#! /bin/bash
# Copyright (c) 2006 SUSE Linux Products GmbH, Nuernberg, Germany.
# All rights reserved.
#
### BEGIN INIT INFO
# Provides:          salinfo_decode
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 5
# Default-Stop:      0 1 6
# Short-Description: SAL info logger daemon
# Description:       Start the SAL info logger daemon
#		     to log SAL error records
### END INIT INFO

LOGBASE=/var/log/salinfo
SALINFO_DECODE=/usr/sbin/salinfo_decode_all

. /etc/rc.status
. /etc/sysconfig/salinfo

# Reset status of this service
rc_reset

# Return values acc. to LSB for all commands but status:
# 0	  - success
# 1       - generic or unspecified error
# 2       - invalid or excess argument(s)
# 3       - unimplemented feature (e.g. "reload")
# 4       - user had insufficient privileges
# 5       - program is not installed
# 6       - program is not configured
# 7       - program is not running
# 8--199  - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
# 
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signaling is not supported) are
# considered a success.

test -x $SALINFO_DECODE || exit 5

case "$1" in
  start)
    echo -n "Starting salinfo daemon "
    # Export salinfo variables
    export DIRECTORY=$LOGBASE
    for var in ${!SALINFO_*}; do
      test $var = SALINFO_DECODE && continue
      eval export ${var#SALINFO_}=\$$var
    done
    ## Start daemon with startproc(8). If this fails
    ## the return value is set appropriately by startproc.
    startproc -s -q $SALINFO_DECODE

    # Remember status and be verbose
    rc_status -v
    ;;

  stop)
    echo -n "Shutting down salinfo daemon "
    ## Stop daemon with killproc(8) and if this fails
    ## killproc sets the return value according to LSB.
    killproc $SALINFO_DECODE

    # Remember status and be verbose
    rc_status -v
    ;;

  try-restart)
    ## Do a restart only if the service was active before.
    ## Note: try-restart is not (yet) part of LSB (as of 1.2)
    $0 status >/dev/null &&  $0 restart

    # Remember status and be quiet
    rc_status
    ;;

  restart)
    ## Stop the service and regardless of whether it was
    ## running or not, start it again.
    $0 stop
    $0 start

    # Remember status and be quiet
    rc_status
    ;;

  force-reload)
    ## Signal the daemon to reload its config. Most daemons
    ## do this on signal 1 (SIGHUP).
    ## If it does not support it, restart.
    $0 stop && $0 start
    rc_status
    ;;

  reload)
    ## Like force-reload, but if daemon does not support
    ## signaling, do nothing (!)
    rc_failed 3
    rc_status -v
    ;;

  status)
    echo -n "Checking for service salinfo daemon "
    ## Check status with checkproc(8), if process is running
    ## checkproc will return with exit status 0.

    # Return value is slightly different for the status command:
    # 0 - service up and running
    # 1 - service dead, but /var/run/  pid  file exists
    # 2 - service dead, but /var/lock/ lock file exists
    # 3 - service not running (unused)
    # 4 - service status unknown :-(
    # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
	
    # NOTE: checkproc returns LSB compliant status values.
    checkproc $SALINFO_DECODE
    # NOTE: rc_status knows that we called this init script with
    # "status" option and adapts its messages accordingly.
    rc_status -v
    ;;

  *)
    echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
    exit 1
    ;;
esac
rc_exit