33 lines
773 B
Bash
Executable File
33 lines
773 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -ex
|
|
#
|
|
# Install EarlyOOM
|
|
#
|
|
|
|
[[ $(uname) = Linux ]] || exit 1
|
|
[[ $USER = root ]] || exit 1
|
|
|
|
# earlyoom specifically needs "SysRq 64 - enable signalling of processes (term, kill, oom-kill)"
|
|
# but for simplicity just enable all SysRq
|
|
sysctl -w kernel.sysrq=1
|
|
echo kernel.sysrq=1 >> /etc/sysctl.conf
|
|
|
|
if command -v earlyoom; then
|
|
systemctl status earlyoom
|
|
else
|
|
wget -r -l1 -np http://ftp.us.debian.org/debian/pool/main/e/earlyoom/ -A 'earlyoom_1.2-*_amd64.deb' -e robots=off -nd
|
|
apt install --quiet --yes ./earlyoom_1.2-*_amd64.deb
|
|
|
|
cat > earlyoom <<OOM
|
|
# trigger at 20% available RAM,
|
|
EARLYOOM_ARGS="-m 20"
|
|
OOM
|
|
cp earlyoom /etc/default/
|
|
rm earlyoom
|
|
|
|
systemctl stop earlyoom
|
|
systemctl enable earlyoom
|
|
systemctl start earlyoom
|
|
fi
|
|
|