#!/sbin/openrc-run
#
# OpenRC init script for preload.
# Based on Debian's /etc/init.d/preload.
#

description="Adaptive readahead daemon"

command="/usr/sbin/preload"
command_args="-s /var/lib/preload/preload.state"

if [ -f /etc/default/preload ]; then
	. /etc/default/preload
fi

command_args="$command_args ${DAEMON_OPTS:-} ${OPTIONS:-}"
start_stop_daemon_args="-u 0 ${PRELOAD_IOSCHED:-}"

depend() {
	need localmount
	after clock
	use logger
}

start() {
	[ -x "$command" ] || return 0
	ebegin "Starting $description"
	start-stop-daemon --start --quiet $start_stop_daemon_args \
		--exec "$command" -- $command_args || ret=$?
	if [ "${ret:-0}" = 1 ]; then
		einfo "already running"
		ret=0
	fi
	eend ${ret:-0}
}

stop() {
	[ -x "$command" ] || return 0
	ebegin "Stopping $description"
	start-stop-daemon --stop --retry 1 --quiet -u 0 --exec "$command" || ret=$?
	if [ "${ret:-0}" = 1 ]; then
		einfo "not running"
		ret=0
	fi
	eend ${ret:-0}
}

reload() {
	[ -x "$command" ] || return 1
	ebegin "Reloading $description configuration"
	start-stop-daemon --stop $start_stop_daemon_args --signal 1 --quiet -u 0 \
		--exec "$command" || ret=$?
	eend ${ret:-0}
}

force_reload() {
	reload
}

restart() {
	stop || :
	start
}

status() {
	status_of_proc "$command" preload
}
