Files
earlyoom/earlyoom.init

70 lines
1.8 KiB
Bash

#!/bin/bash
#
# chkconfig: 345 11 89
# description: Early OOM Killer daemon
#
### BEGIN INIT INFO
# Provides: earlyoom
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Early OOM Killer
# Description: A userspace service that will kill the largest process
# (by VmRSS residential size) when free RAM drops below 10%.
### END INIT INFO
if [ -r /etc/rc.status ]; then
source /etc/rc.status
START="/sbin/startproc"
STATUS="/sbin/checkproc"
SUCCESS="echo \$rc_done"
FAILURE="echo \$rc_failed"
else
source /etc/rc.d/init.d/functions
START="daemon"
STATUS="status"
SUCCESS="success; echo"
FAILURE="failure; echo"
fi
[ -r /etc/sysconfig/earlyoom ] && source /etc/sysconfig/earlyoom || EARLYOOM_ARGS="-r 3 -m 10 -s 20 -n --avoid '(^|/)(systemd|Xorg|X|Xwayland|xdm|ssdm|kdm|gdm|lightdm|ssh|yast|yast2|y2controlcenter|zypper|rpm)$' --prefer '(^|/)(java|firefox|chromium|chrome|opera|ffmpeg|vlc|akregator|thumbnail.so)$'"
EARLYOOM_BIN=/usr/bin/earlyoom
EARLYOOM_PID=/var/run/earlyoom.pid
RETVAL=0
case "$1" in
start)
echo -n "Starting earlyoom: "
${START} ${EARLYOOM_BIN} ${EARLYOOM_ARGS}
RETVAL=$?
;;
stop)
echo -n "Stopping earlyoom: "
killproc -p ${EARLYOOM_PID} ${EARLYOOM_BIN}
RETVAL=$?
;;
restart)
$0 stop
$0 start
unset RETVAL
;;
reload|force-reload)
RETVAL=3
;;
status)
echo -n "Status of earlyoom: "
${STATUS} ${EARLYOOM_BIN} > /dev/null 2>&1
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload|force-reload|usage}"
exit 1
;;
esac
[ -z ${RETVAL} ] && exit
[ ${RETVAL} -eq 0 ] && eval "${SUCCESS}" || eval "${FAILURE}"
exit ${RETVAL}