#!/bin/sh # # Compcache startup script # # chkconfig: 2345 26 59 # # description: Compcache uses part of the RAM as a compressed swap device # ### BEGIN INIT INFO # Provides: compcache # Default-Start: 2 3 4 5 # Short-Description: Compcache service # Description: Compcache uses part of the RAM as a compressed swap device ### END INIT INFO . /lib/lsb/init-functions [ -f /etc/ublinux/services/compcache ] && . /etc/ublinux/services/compcache NUM_DEVICES=${NUM_DEVICES:-4} [ -z "$ZRAMSIZE" ] && ZRAMSIZE=$(($(free -b | grep -m1 -i ^mem: | awk '{print $2}') /4)) GPRINTF=gprintf [ -f /etc/init.d/functions ] || GPRINTF=log_daemon_msg case "$1" in start) $GPRINTF "Loading compcache: " /sbin/modprobe zram num_devices=$NUM_DEVICES && \ echo $ZRAMSIZE > /sys/block/zram0/disksize && \ mkswap /dev/zram0 >/dev/null 2>&1 && \ swapon /dev/zram0 RETVAL=$? if [ $RETVAL = 0 ]; then log_success_msg $"%s startup" "$base" else log_failure_msg $"%s startup" "$base" fi echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/compcache ;; stop) $GPRINTF "Stopping compcache: " test -e /dev/zram0 && swapoff /dev/zram0 && sleep 0.5 && rmmod zram RETVAL=$? if [ $RETVAL = 0 ]; then log_success_msg $"%s stop" "$base" else log_failure_msg $"%s stop" "$base" fi echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/compcache ;; status) swapon -s | grep -q /dev/zram0 RETVAL=$? ;; restart|reload) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|status|restart}" RETVAL=1 ;; esac exit $RETVAL