blob: 7a8f8f991845edb835f81bade18ef49197f7ff0e [file] [log] [blame]
#! /bin/sh
#
# This is an init script for openembedded
# Copy it to /etc/init.d/rsyslog and type
# > update-rc.d rsyslog defaults 5
#
PATH=/sbin:/usr/sbin:/bin:/usr/bin
NAME=rsyslog
RSYSLOGD=rsyslogd
RSYSLOGD_BIN=/usr/sbin/rsyslogd
RSYSLOGD_OPTIONS=""
RSYSLOGD_PIDFILE=/var/run/rsyslogd.pid
SCRIPTNAME=/etc/init.d/$NAME
# Exit if the package is not installed
[ -x "$RSYSLOGD_BIN" ] || exit 0
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
#
# Function that starts the daemon/service
#
do_start()
{
DAEMON=$1
DAEMON_ARGS=$2
PIDFILE=$3
# Return
# 0 if daemon has been started
# 1 if daemon could not be started
# if daemon had already been started, start-stop-daemon will return 1
# so add -o/--oknodo(if nothing is done, exit 0)
start-stop-daemon -S --quiet --pidfile $PIDFILE --exec $DAEMON \
--oknodo -- $DAEMON_ARGS || return 1
}
#
# Function that stops the daemon/service
#
do_stop()
{
NAME=$1
PIDFILE=$2
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
# QUIT/TERM/INT should work here, but they don't ?????
start-stop-daemon -K --quiet --signal KILL --pidfile $PIDFILE --name $NAME
RETVAL="$?"
rm -f $PIDFILE
return "$RETVAL"
}
#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
NAME=$1
PIDFILE=$2
start-stop-daemon -K --signal HUP --quiet --pidfile $PIDFILE --name $NAME
return 0
}
do_status() {
NAME=$1
PIDFILE=$2
# -t: test only but not stop
start-stop-daemon -K -t --quiet --pidfile $PIDFILE --name $NAME
# exit with status 0 if process is found
if [ "$?" = "0" ]; then
return 0
else
return 1
fi
}
case "$1" in
start)
echo -n "starting $RSYSLOGD ... "
do_start "$RSYSLOGD_BIN" "$RSYSLOGD_OPTIONS" "$RSYSLOGD_PIDFILE"
case "$?" in
0) echo "done" ;;
1) echo "failed" ;;
esac
;;
stop)
echo -n "stopping $RSYSLOGD ... "
do_stop "$RSYSLOGD" "$RSYSLOGD_PIDFILE"
case "$?" in
0|1) echo "done" ;;
2) echo "failed" ;;
esac
;;
reload|force-reload)
echo -n "reloading $RSYSLOGD ... "
do_reload "$RSYSLOGD" "$RSYSLOGD_PIDFILE"
echo "done"
;;
restart)
$0 stop
$0 start
;;
status)
echo -n "status $RSYSLOGD ... "
do_status "$RSYSLOGD" "$RSYSLOGD_PIDFILE"
if [ "$?" = "0" ]; then
echo "running"
exit 0
else
echo "stopped"
exit 1
fi
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|status|restart|reload|force-reload}" >&2
exit 3
;;
esac
exit 0