66 lines
1.5 KiB
Text
66 lines
1.5 KiB
Text
#!/sbin/openrc-run
|
|
|
|
description='Start/stop the preload daemon'
|
|
extra_started_commands='dump reload'
|
|
description_dump='Dump the config and state of the daemon (to the logfile)'
|
|
description_reload='Reload the daemon'
|
|
|
|
PIDFILE="/var/run/preload.pid"
|
|
|
|
depend() {
|
|
after localmount
|
|
use netmount ntpd
|
|
}
|
|
|
|
dump() {
|
|
local pid
|
|
pid=$(cat ${PIDFILE})
|
|
|
|
ebegin "Dumping the config and state of preload"
|
|
if [ -n "${pid}" ]; then
|
|
kill -USR1 ${pid}
|
|
kill -USR2 ${pid}
|
|
fi
|
|
eend ${?} && \
|
|
einfo "These should have been written to ${PRELOAD_LOGFILE:-/var/log/preload.log}"
|
|
}
|
|
|
|
reload() {
|
|
ebegin "Reloading preload"
|
|
kill -HUP $(cat ${PIDFILE})
|
|
eend ${?}
|
|
}
|
|
|
|
start() {
|
|
local ionice
|
|
|
|
ebegin "Starting preload"
|
|
|
|
#MIN_MEMORY=${MIN_MEMORY:-256}
|
|
# Check for > MIN_MEMORY MB
|
|
#free -m | awk '/Mem:/ {exit ($2 >= ('"$MIN_MEMORY"'))?0:1}' || exit 0
|
|
|
|
# First try to start with ionice; if that fails, try without.
|
|
for ionice in "ionice ${IONICE_OPTS:--c3}" ''; do
|
|
# Avoid 'ionice not found' errors
|
|
${ionice:-true} >/dev/null 2>&1 || continue
|
|
|
|
${ionice} start-stop-daemon --start --quiet --background \
|
|
--make-pidfile --pidfile ${PIDFILE} \
|
|
--exec /usr/sbin/preload -- \
|
|
-l ${PRELOAD_LOGFILE:-/var/log/preload.log} \
|
|
-V ${PRELOAD_VERBOSITY:-1} \
|
|
-n ${PRELOAD_NICE:-15} \
|
|
-s ${PRELOAD_STATEFILE:-""} \
|
|
${PRELOAD_OPTS} -f \
|
|
&& break
|
|
done
|
|
|
|
eend ${?}
|
|
}
|
|
|
|
stop() {
|
|
ebegin "Stopping preload (this may take a while)"
|
|
start-stop-daemon --stop --retry 120 --quiet --pidfile ${PIDFILE}
|
|
eend ${?}
|
|
}
|