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.
68 lines
1.7 KiB
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
|