summaryrefslogtreecommitdiff
path: root/package/base-files/files/etc/init.d/sysctl
blob: 3a497fb66c4f0fb6748ca7c3ba316ee2627f4c74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org

START=11

set_vm_min_free() {
	mem="$(grep MemTotal /proc/meminfo  | awk '{print $2}')"
	if [ "$mem" -gt 65536 ]; then # 128M
		val=16384
	elif [ "$mem" -gt 32768 ]; then # 64M
		val=8192
	elif [ "$mem" -gt 16384 ]; then # 32M
		val=1024
	else
		return
	fi
	sysctl -qw vm.min_free_kbytes="$val"
}

start() {
	set_vm_min_free
	for CONF in /etc/sysctl.conf /etc/sysctl.d/*.conf; do
		[ -f "$CONF" ] && sysctl -p "$CONF" -e >&-
	done
}