slackbuilds/network/miniupnpd/rc.miniupnpd.new

93 lines
1.7 KiB
Bash

#!/bin/bash
PRG="MiniUPnPd"
ARGS="-f /etc/miniupnpd/miniupnpd.conf"
IPV6=@IPV6@
cleanup() {
/etc/miniupnpd/iptables_removeall.sh &> /dev/null
[ "$IPV6" = "yes" ] && /etc/miniupnpd/ip6tables_removeall.sh &> /dev/null
}
start() {
echo -n "Starting $PRG..."
/etc/miniupnpd/iptables_init.sh &> /dev/null
[ "$IPV6" = "yes" ] && /etc/miniupnpd/ip6tables_init.sh &> /dev/null
if /usr/sbin/miniupnpd $ARGS; then
echo "Done."
else
EXIT=$?
cleanup
exit $EXIT
fi
}
stop() {
echo -n "Stopping $PRG..."
killall miniupnpd &> /dev/null
cleanup
echo "Done."
}
ensure_running() {
if pidof miniupnpd &> /dev/null; then
RUN=1
else
echo "$PRG is not running."
exit 1
fi
}
case "$1" in
"start")
if pidof miniupnpd &> /dev/null; then
echo "$PRG already running."
exit 0
fi
start
;;
"stop")
ensure_running
stop
;;
"restart")
if pidof miniupnpd &> /dev/null; then
stop
else
echo -n "$PRG is not running. Cleaning..."
cleanup
echo "Done."
fi
start
;;
"flush")
ensure_running
echo -n "Flushing $PRG iptables rules..."
/etc/miniupnpd/iptables_flush.sh
[ "$IPV6" = "yes" ] && /etc/miniupnpd/ip6tables_flush.sh
echo "Done."
;;
"display")
ensure_running
/etc/miniupnpd/iptables_display.sh
[ "$IPV6" = "yes" ] && /etc/miniupnpd/ip6tables_display.sh
;;
"status")
ensure_running
echo "$PRG is running."
;;
"cleanup")
if pidof miniupnpd &> /dev/null; then
echo "$PRG is running. Refusing to cleanup."
exit 1
fi
echo -n "Cleaning..."
cleanup
echo "Done."
;;
*)
echo "Usage: $0 {start|stop|restart|flush|display|cleanup|status}"
exit 1
;;
esac