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