#!/bin/sh set -eu . /etc/default/earlyoom do_start() { if [ -f /var/run/earlyoom.pid ]; then if ps -p "$(cat /var/run/earlyoom.pid)" > /dev/null 2>&1 then echo "earlyoom is already running." exit 0 fi fi echo "Starting earlyoom..." # shellcheck disable=2086 nohup /usr/sbin/earlyoom $EARLYOOM_ARGS > /var/log/earlyoom.log 2>&1 & echo "$!" > /var/run/earlyoom.pid exit 0 } do_stop() { if [ -f /var/run/earlyoom.pid ]; then if ps -p "$(cat /var/run/earlyoom.pid)" > /dev/null 2>&1 then echo "Stopping earlyoom..." kill -15 "$(cat /var/run/earlyoom.pid)" > /dev/null 2>&1 rm -f /var/run/earlyoom.pid exit 0 fi fi echo "earlyoom is not running..." } do_force_stop() { if [ -f /var/run/earlyoom.pid ]; then if ps -p "$(cat /var/run/earlyoom.pid)" > /dev/null 2>&1 then echo "Killing earlyoom..." kill -9 "$(cat /var/run/earlyoom.pid)" > /dev/null 2>&1 rm -f /var/run/earlyoom.pid exit 0 fi fi echo "earlyoom appears to not be running." exit 0 } do_restart() { do_stop do_start } do_status() { if [ -f /var/run/earlyoom.pid ]; then if ps -p "$(cat /var/run/earlyoom.pid)" > /dev/null 2>&1 then echo "earlyoom is running with pid $(cat /var/run/earlyoom.pid)." exit 0 fi fi echo "earlyoom is not running." } do_help() { echo "USAGE: rc.earlyoom (start|stop|force-stop|restart|status)" exit 0 } if [ -z "${1-}" ]; then do_help fi case $1 in start) do_start ;; stop) do_stop ;; restart) do_restart ;; force-stop) do_force_stop ;; status) do_status ;; *) do_help ;; esac