-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/; \
#!/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
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..."
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
}
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