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
 | 
						|
 |