diff --git a/etc-init.d-swapfile b/etc-init.d-swapfile new file mode 100644 index 0000000..b5f9773 --- /dev/null +++ b/etc-init.d-swapfile @@ -0,0 +1,83 @@ +#!/bin/sh /etc/rc.common +# (C) 2016 - 2023 Fernao Vellozo +# This is free software under the terms of GPLv3 + +START=90 + +EXTRA_COMMANDS="status create" +EXTRA_HELP=" status Check service status + create Create a swapfile" + +SWPATH="/mnt/routerdata/swapfile" + +boot() { + if [ -f $SWPATH ]; then + swapon $SWPATH + logger "swapfile started on boot" + else + logger "ERROR: swapfile not found" + fi +} + +start() { + if [ -f $SWPATH ]; then + swapon $SWPATH + logger "swapfile started" + echo "SwapFile started" + else + logger "ERROR: swapfile not found" + echo "ERROR: SwapFile not found at "$SWPATH + fi +} + +restart() { + if [ -f $SWPATH ]; then + swapoff $SWPATH + swapon $SWPATH + logger "swapfile stopped, reloading..." + echo "SwapFile Reloaded" + else + logger "ERROR: swapfile not found" + echo "ERROR: SwapFile not found at "$SWPATH + fi +} + +stop() { + if [ -f $SWPATH ]; then + swapoff $SWPATH + logger "swapfile stopped" + echo "SwapFile stopped "$SWPATH + else + logger "ERROR: swapfile not found" + echo "ERROR: SwapFile not found at "$SWPATH + fi +} + +create() { + RAMTOTAL=`fgrep MemTotal /proc/meminfo | awk '{print $2}'` + SWAPTOTAL=`fgrep SwapTotal /proc/meminfo | awk '{print $2}'` + if [ $SWAPTOTAL != 0 ]; then + echo "ERROR: Swap already in use, quitting..." + else + dd if=/dev/zero of=$SWFILE bs=1024 count=$RAMTOTAL + mkswap -L SWAPFILE $SWFILE + chmod 600 $SWFILE + /etc/init.d/swapfile enable + logger "SwapFile created" + echo "SwapFile successfully created, enabled to run after the next reboot" + fi +} + +status() { + SWAPTOTAL=`fgrep SwapTotal /proc/meminfo | awk '{print $2}'` + if [ $SWAPTOTAL == 0 ]; then + echo "No swap memory available" + else + echo $SWAPTOTAL "KB of swap are available" + if [ -f $SWPATH ]; then + echo "Swapfile is located at "$SWPATH + else + echo "Swap memory has been loaded, but not from here" + fi + fi +} \ No newline at end of file