diff options
Diffstat (limited to 'system/earlyoom/rc.earlyoom')
-rw-r--r-- | system/earlyoom/rc.earlyoom | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/system/earlyoom/rc.earlyoom b/system/earlyoom/rc.earlyoom new file mode 100644 index 0000000000..277050fefd --- /dev/null +++ b/system/earlyoom/rc.earlyoom @@ -0,0 +1,70 @@ +#!/bin/sh +set -eu + +. /etc/default/earlyoom + +do_start() { + if ps -p "$(cat /var/run/earlyoom.pid)" > /dev/null + then + echo "earlyoom is already running." + else + echo "Starting earlyoom..." + nohup /usr/bin/earlyoom $EARLYOOM_ARGS > /var/log/earlyoom.log 2>&1 & + echo "$!" > /var/run/earlyoom.pid + fi +} + +do_stop() { + if ps -p "$(cat /var/run/earlyoom.pid)" > /dev/null + then + echo "Stopping earlyoom..." + kill -15 "$(cat /var/run/earlyoom.pid)" + else + echo "earlyoom is not running." + fi +} + +do_force_stop() { + if ps -p "$(cat /var/run/earlyoom.pid)" > /dev/null + then + echo "Killing earlyoom..." + kill -9 "$(cat /var/run/earlyoom.pid)" + else + echo "earlyoom appears to not be running." + fi +} + +do_restart() { + do_stop + do_start +} + +do_status() { + if ps -p "$(cat /var/run/earlyoom.pid)" > /dev/null + then + echo "earlyoom is running with pid $(cat /var/run/earlyoom.pid)." + else + echo "earlyoom is not running." + fi +} + +case $1 in + start) + do_start + ;; + stop) + do_stop + ;; + restart) + do_restart + ;; + force-stop) + do_force_stop + ;; + status) + do_status + ;; + *) + echo "USAGE: rc.earlyoom (start|stop|force-stop|restart|status)" + ;; +esac |