Hi,
ich habe der Wiki-Anleitung gefolgt und bin auch erfolgreich bis zum Punkt "Alternative IPKG Startup Scripts" vorgestoßen. Nun aber scheitere ich. Was muss ich denn womit machen? Soll ich jedes einzelne als script abspeichern. Ich bin leider noch viel zu unerfahren was linux angeht. Hoffe aber das sich das demnächst ändert.
Hier die Punkte die ich nicht verstehe. ist es überhaupt notwendig da weiter zu machen?
Alternative IPKG Startup Scripts
Wie bereits geschrieben, sind die Originalen Startup Scripts des IPKG Optware unter "/etc/opt/init.d/" nicht gerade das gelbe vom Ei. Die Scripts eignen sich gerade mal dazu die Dienste zu starten, aber für das herunterfahren der DS sind diese Scripts einfach nicht geeignet. Daher sind hier alternative Start/Stop Scripts abgelegt und jeder, der seine DS erweitert ist aufgerufen, weitere Scripts, welche ein sauberes Starten und stoppen ermöglichen, hier abzulegen. Wenn man nachfolgende Scripts verwendet, ist das alternative "optware.sh" Sript beim herunterfahren der DS dazu in der Lage die entsprechenden Dienste sauber mit stop zu beenden.
Startup Script atd
Das originale aus dem IPK stammende Startup Script unter /opt/etc/init.d/ wurde um start/stop/restart Prozeduren erweitert.
Startup Script fetchmail
Das Script ist etwas angepasst, damit für jeden User ein eigenes fetchmail aufgerufen werden kann. Das Logfile hat derzeit den Nachteil, dass es für alle User beschreibbar und lesbar sein muss. Da ist noch ein kleines TODO, aber fürs erste ist das Script besser, wie das Originale, welches sich für das IPKG unter /opt/etc/init.d/ findet.
Startup Script rsyncd
Das nachfolgende Script für /opt/etc/init.d/ sollte bei verwendung besser noch einmal sauber durchgetestet werden. Da mit DSM3.0 die Diskstation einen eingenen rsynd anbietet, ist das Script nur vollständigkeitshalber hier abgelegt.
Startup Script cupsd
Startup Script openvpn mit NAT
Bitte ggf. die Adresse das VPN-Subnetzes entsprechend der /opt/etc/openvpn/openvpn.conf anpassen. Bitte vorher modprobe in Betrieb nehmen.
ich habe der Wiki-Anleitung gefolgt und bin auch erfolgreich bis zum Punkt "Alternative IPKG Startup Scripts" vorgestoßen. Nun aber scheitere ich. Was muss ich denn womit machen? Soll ich jedes einzelne als script abspeichern. Ich bin leider noch viel zu unerfahren was linux angeht. Hoffe aber das sich das demnächst ändert.
Hier die Punkte die ich nicht verstehe. ist es überhaupt notwendig da weiter zu machen?
Alternative IPKG Startup Scripts
Wie bereits geschrieben, sind die Originalen Startup Scripts des IPKG Optware unter "/etc/opt/init.d/" nicht gerade das gelbe vom Ei. Die Scripts eignen sich gerade mal dazu die Dienste zu starten, aber für das herunterfahren der DS sind diese Scripts einfach nicht geeignet. Daher sind hier alternative Start/Stop Scripts abgelegt und jeder, der seine DS erweitert ist aufgerufen, weitere Scripts, welche ein sauberes Starten und stoppen ermöglichen, hier abzulegen. Wenn man nachfolgende Scripts verwendet, ist das alternative "optware.sh" Sript beim herunterfahren der DS dazu in der Lage die entsprechenden Dienste sauber mit stop zu beenden.
Startup Script atd
Das originale aus dem IPK stammende Startup Script unter /opt/etc/init.d/ wurde um start/stop/restart Prozeduren erweitert.
#!/bin/sh
#
# Startup script for atd
#
# Stop myself if running
PIDFILE=/var/run/atd.pid
#
start() {
/opt/sbin/atd &
echo "Optware startup atd"
}
#
stop() {
[ -f ${PIDFILE} ] && kill `cat ${PIDFILE}`
echo "Optware shutdown atd"
}
#
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 1
start
;;
*)
echo "Usage: $0 (start|stop|restart)"
exit 1
;;
esac
# End
Startup Script fetchmail
Das Script ist etwas angepasst, damit für jeden User ein eigenes fetchmail aufgerufen werden kann. Das Logfile hat derzeit den Nachteil, dass es für alle User beschreibbar und lesbar sein muss. Da ist noch ein kleines TODO, aber fürs erste ist das Script besser, wie das Originale, welches sich für das IPKG unter /opt/etc/init.d/ findet.
#!/bin/sh
PROG=fetchmail
#ARGS="-d 300 -t 60 -a -e 50 --auth password -f /opt/etc/fetchmailrc -L /opt/var/log/fetchmail"
ARGS="-d 910 -t 60 -a -e 50 --auth password -L /opt/var/log/fetchmail"
#
if [ -z "$1" ] ; then
case `echo "$0" | /bin/sed 's/^.*\/\(.*\)/\1/g'` in
S??*) rc="start" ;;
K??*) rc="stop" ;;
*) rc="usage" ;;
esac
else
rc="$1"
fi
#
case "$rc" in
start)
echo "starting service $PROG"
for user in `cat /etc/passwd | awk -F':' '{ print $1}'`; do
USERHOME=`cat /etc/passwd | grep "^${user}" | awk -F':' '{print $6}'`
if [ -f ${USERHOME}/.fetchmailrc ]; then
su - ${user} -c "export HOME=${USERHOME} ; $PROG $ARGS" 2>&1
fi
done
exit
#
;;
stop)
echo "stopping service $PROG"
#
if [ -n "`pidof $PROG`" ]; then
killall $PROG
fi
;;
restart)
"$0" stop
sleep 1
"$0" start
;;
*)
echo "Usage: $0 (start|stop|restart|usage)"
;;
esac
#
# End
Startup Script rsyncd
Das nachfolgende Script für /opt/etc/init.d/ sollte bei verwendung besser noch einmal sauber durchgetestet werden. Da mit DSM3.0 die Diskstation einen eingenen rsynd anbietet, ist das Script nur vollständigkeitshalber hier abgelegt.
#!/bin/sh
#
# Startup and Shutdown script for rsyncd
#
# Start
start() {
[ -e /opt/etc/default/rsync ] && . /opt/etc/default/rsync
#
if ${RSYNC_ENABLE} ; then
/opt/bin/rsync --daemon ${RSYNC_OPTS}
echo "Optware startup rsyncd."
fi
}
#
# Stop
stop() {
if [ -f /var/run/rsyncd.pid ] ; then
kill `cat /var/run/rsyncd.pid`
else
killall rsync 2>/dev/null
fi
rm -f /var/run/rsyncd.pid
}
#
stop
#
start
#
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 1
start
;;
*)
echo "Usage: $0 (start|stop|restart)"
exit 1
;;
esac
#
# End
Startup Script cupsd
#!/bin/sh
#
# Start / Stop Script for cupsd http://localhost:631
#
PREFIX=/opt
NAME=cupsd
DAEMON=/opt/sbin/cupsd
DAEMON_OPTS=""
#
#
start() {
echo "Starting Service: $NAME"
$DAEMON $DAEMON_OPTS
}
#
#
stop() {
killall cupsd
}
#
#
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: $0 (start|stop|restart)"
exit 1
;;
esac
#
# End
Startup Script openvpn mit NAT
Bitte ggf. die Adresse das VPN-Subnetzes entsprechend der /opt/etc/openvpn/openvpn.conf anpassen. Bitte vorher modprobe in Betrieb nehmen.
#!/bin/sh
#
# Startup script for openvpn server with NAT routing
# to access your local net by VPN.
#
start() {
# Get network interface of default route
DEV=$( route -n | grep "^0\.0\.0\.0" | sed 's/ */ /g' | cut -d" " -f8 )
# Get local IP address of default routing interface
IPA=$( ip addr show ${DEV} | awk '$1~/^inet$/ {gsub("/.*$","",$2);print $2}' )
# Make sure IP forwarding is enabled
echo 1 > /proc/sys/net/ipv4/ip_forward
# Make device if not present (not devfs)
if ( [ ! -c /dev/net/tun ] ) then
# Make /dev/net directory if needed
if ( [ ! -d /dev/net ] ) then
mkdir -m 755 /dev/net
fi
mknod /dev/net/tun c 10 200
fi
# Make sure the tunnel driver is loaded
if ( !(lsmod | grep -q "^tun") ); then
modprobe tun
fi
# Make sure the nat table is loaded
# (Will load ip_nat, ip_tables and ip_conntrack too.)
if ( !(lsmod | grep -q "^iptable_nat") ); then
modprobe iptable_nat
fi
## Start standalone servers (without xinetd) comment out if xinetd is used
# Start the openvpn daemon - add as many daemons as you want
/opt/sbin/openvpn --daemon --cd /opt/etc/openvpn --config openvpn.conf
# Setup NAT (adjust address if different)
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source ${IPA}
echo "Optware startup openvpn with NAT to ${IPA}"
}
#
stop() {
# Kill all servers running
if [ -n "`/opt/bin/pidof openvpn`" ]; then
/opt/bin/killall openvpn 2>/dev/null
fi
# Erase and unload nat table
if ( (lsmod | grep -q "^iptable_nat") ); then
iptables -t nat -F
modprobe -r iptable_nat;
fi
# unloaded no longe needed modules
if ( (lsmod | grep -q "^tun") ); then
#ifconfig tun0 down
modprobe -r tun;
fi
echo "Optware shutdown openvpn"
}
#
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 1
start
;;
*)
echo "Usage: $0 (start|stop|restart)"
exit 1
;;
esac
# End