- Clean-up. OBS-URL: https://build.opensuse.org/request/show/761208 OBS-URL: https://build.opensuse.org/package/show/Base:System/earlyoom?expand=0&rev=2
70 lines
1.8 KiB
Bash
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}
|