Jiri Moskovcak 008278
#!/bin/bash
Jiri Moskovcak 008278
# Start ABRT kernel log watcher
Jiri Moskovcak 008278
#
Jiri Moskovcak 008278
# chkconfig: 35 82 16
Jiri Moskovcak 008278
# description: Watches system log for oops messages, creates ABRT dump directories for each oops
Jiri Moskovcak 008278
### BEGIN INIT INFO
Jiri Moskovcak 008278
# Provides: abrt-oops
Jiri Moskovcak 008278
# Required-Start: $abrtd
Jiri Moskovcak 008278
# Default-Stop: 0 1 2 6
Jiri Moskovcak 008278
# Default-Start: 3 5
Jiri Moskovcak 008278
# Short-Description: Watches system log for oops messages, creates ABRT dump directories for each oops
Jiri Moskovcak 008278
# Description: Watches system log for oops messages, creates ABRT dump directories for each oops
Jiri Moskovcak 008278
### END INIT INFO
Jiri Moskovcak 008278
Jiri Moskovcak 008278
# Source function library.
Jiri Moskovcak 008278
. /etc/rc.d/init.d/functions
Jiri Moskovcak 008278
Jiri Moskovcak 008278
# For debugging
Jiri Moskovcak 008278
dry_run=false
Jiri Moskovcak 008278
verbose=false
Jiri Moskovcak 008278
Jiri Moskovcak 008278
# We don't have pid files, therefore have to use
Jiri Moskovcak 008278
# a flag file in /var/lock/subsys to enable GUI service tools
Jiri Moskovcak 008278
# to figure out our status
Jiri Moskovcak 008278
LOCK="/var/lock/subsys/abrt-oops"
Jiri Moskovcak 008278
Jiri Moskovcak 008278
RETVAL=0
Jiri Moskovcak 008278
Jiri Moskovcak 008278
check() {
Jiri Moskovcak 008278
	# Check that we're a privileged user
Jiri Moskovcak 008278
	[ "`id -u`" = 0 ] || exit 4
Jiri Moskovcak 008278
}
Jiri Moskovcak 008278
Jiri Moskovcak 008278
start() {
Jiri Moskovcak 008278
	check
Jiri Moskovcak 008278
	killall abrt-dump-oops 2>/dev/null
Jiri Moskovcak 008278
	setsid abrt-dump-oops -d /var/spool/abrt -rwx /var/log/messages </dev/null >/dev/null 2>&1 &
Jiri Moskovcak 008278
	$dry_run || touch -- "$LOCK"
Jiri Moskovcak 008278
	return $RETVAL
Jiri Moskovcak 008278
}
Jiri Moskovcak 008278
Jiri Moskovcak 008278
stop() {
Jiri Moskovcak 008278
	check
Jiri Moskovcak 008278
	killall abrt-dump-oops
Jiri Moskovcak 008278
	$dry_run || rm -f -- "$LOCK"
Jiri Moskovcak 008278
	return $RETVAL
Jiri Moskovcak 008278
}
Jiri Moskovcak 008278
Jiri Moskovcak 008278
restart() {
Jiri Moskovcak 008278
	stop
Jiri Moskovcak 008278
	start
Jiri Moskovcak 008278
}
Jiri Moskovcak 008278
Jiri Moskovcak 008278
reload() {
Jiri Moskovcak 008278
	restart
Jiri Moskovcak 008278
}
Jiri Moskovcak 008278
Jiri Moskovcak 008278
case "$1" in
Jiri Moskovcak 008278
start)
Jiri Moskovcak 008278
	start
Jiri Moskovcak 008278
	;;
Jiri Moskovcak 008278
stop)
Jiri Moskovcak 008278
	stop
Jiri Moskovcak 008278
	;;
Jiri Moskovcak 008278
reload)
Jiri Moskovcak 008278
	reload
Jiri Moskovcak 008278
	;;
Jiri Moskovcak 008278
force-reload)
Jiri Moskovcak 008278
	echo "$0: Unimplemented feature."
Jiri Moskovcak 008278
	RETVAL=3
Jiri Moskovcak 008278
	;;
Jiri Moskovcak 008278
restart)
Jiri Moskovcak 008278
	restart
Jiri Moskovcak 008278
	;;
Jiri Moskovcak 008278
condrestart)
Jiri Moskovcak 008278
	# Is it already running?
Jiri Moskovcak 008278
	if test -f "$LOCK"; then   # yes
Jiri Moskovcak 008278
		$verbose && printf "Running, restarting\n"
Jiri Moskovcak 008278
		restart
Jiri Moskovcak 008278
	fi
Jiri Moskovcak 008278
	;;
Jiri Moskovcak 008278
status)
Jiri Moskovcak 008278
	status abrt-dump-oops
Jiri Moskovcak 008278
	RETVAL=$?
Jiri Moskovcak 008278
	;;
Jiri Moskovcak 008278
*)
Jiri Moskovcak 008278
	echo $"Usage: $0 {start|stop|status|restart|condrestart|reload|force-reload}"
Jiri Moskovcak 008278
	RETVAL=2
Jiri Moskovcak 008278
esac
Jiri Moskovcak 008278
Jiri Moskovcak 008278
exit $RETVAL