You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ublinux-init/ublinux/rc.d/init.d/compcache

68 lines
1.7 KiB

#!/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