93 lines
1.7 KiB
Bash
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
|