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