]> git.ipfire.org Git - people/meitelwein/ipfire-2.x.git/commitdiff
ramdisk: Make usage of ramdisk configurable
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 3 Dec 2015 14:41:49 +0000 (14:41 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 3 Dec 2015 14:41:49 +0000 (14:41 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
lfs/initscripts
src/initscripts/init.d/collectd
src/initscripts/init.d/functions
src/initscripts/init.d/vnstat

index c4e3492215c51ea05541634d53bb260bb9d9c57c..538ea4d0b71bfb1786027fc8bdde2d0251cbda5a 100755 (executable)
@@ -61,8 +61,8 @@ $(TARGET) :
        -rm -rf /etc/init.d
        ln -svf rc.d/init.d /etc/init.d
 
-       #create ramdiskfile to force ramdiskcreation if FORCE=1
-       echo "FORCE=0" > /etc/sysconfig/ramdisk
+       # Create default ramdisk configuration
+       echo "RAMDISK_MODE=0" > /etc/sysconfig/ramdisk
 
        for i in $(DIR_SRC)/src/initscripts/init.d/*; do \
                install -v -m 754 $$i /etc/rc.d/init.d/; \
index 69dc94c6faa966674bc518be9b0ef1a9b0c04c34..a38b4f17fbc5ff08534d173eeb8396ce57f7b00d 100644 (file)
@@ -1,12 +1,10 @@
 #!/bin/sh
 # Begin $rc_base/init.d/collecd
 
-
 . /etc/sysconfig/rc
 . $rc_functions
 
 eval $(/usr/local/bin/readhash /var/ipfire/main/settings)
-eval $(/usr/local/bin/readhash /etc/sysconfig/ramdisk)
 
 if [ "$RRDLOG" = '' ]; then
        RRDLOG=/var/log/rrd
@@ -14,7 +12,7 @@ fi
 
 case "$1" in
        start)
-               if [ "$FORCE" == '1' ] || [ "$(mem_amount)" -gt "490" ];then
+               if use_ramdisk; then
                        #mount ramdisk
                        if ! mountpoint $RRDLOG &>/dev/null; then
                                boot_mesg "Mount rrd Ramdisk..."
index 58fdffeb4a997220381e7b400211b441aeb38ef4..bd2c946e0de6ae62217e5a7235492e63fd81b4f9 100644 (file)
@@ -709,6 +709,39 @@ mem_amount() {
         echo "$(( ${pagesize} * ${pages} / 1024 / 1024 ))"
 }
 
+use_ramdisk() {
+       eval $(/usr/local/bin/readhash /etc/sysconfig/ramdisk)
+
+       case "${RAMDISK_MODE}" in
+               # Don't use ramdisk
+               0)
+                       return 1
+                       ;;
+
+               # Always use ramdisk
+               1)
+                       return 0
+                       ;;
+
+               # Automatic mode - use ramdisk if sufficient
+               # memory is available
+               2)
+                       local mem_avail="$(mem_amount)"
+
+                       if [ ${mem_avail} -ge 490 ]; then
+                               return 0
+                       else
+                               return 1
+                       fi
+                       ;;
+
+               # Fail for everything else
+               *)
+                       return 2
+                       ;;
+       esac
+}
+
 mount_ramdisk() {
        mount -t tmpfs none $1
 }
index 2e4a87874fb9f76a8645d7aa599e22bee74ee279..2593afe4db358c87af01ae2eda06d7a2c1c47314 100755 (executable)
@@ -12,7 +12,7 @@ fi
 
 case "$1" in
        start)
-               if [ "$FORCE" == '1' ] || [ "$(mem_amount)" -gt "490" ];then
+               if use_ramdisk; then
                        if ! mountpoint $VNSTATLOG &>/dev/null; then
                                boot_mesg "Mount vnstat ramdisk..."
                                if [ $(find "$VNSTATLOG" | wc -l) -ne 1 ]; then