[Gelöst] OpenWrt "TOR" init Start / Stop Skript ändern

sharbich

Neuer User
Mitglied seit
30 Aug 2012
Beiträge
182
Punkte für Reaktionen
2
Punkte
18
Hallo Ihr Lieben,
ich habe auf meinen OpenWrt Router "TOR" installiert.
Folgendes start Skript wurde bei der Installation angelegt:
Code:
#!/bin/sh /etc/rc.common
# Copyright (C) 2006-2011 OpenWrt.org

START=50
STOP=50

USE_PROCD=1

start_service() {
        [ -f /var/run/tor.pid ] || {
                touch /var/run/tor.pid
                chown tor:tor /var/run/tor.pid
        }
        [ -d /var/lib/tor ] || {
                mkdir -m 0755 -p /var/lib/tor
                chmod 0700 /var/lib/tor
                chown tor:tor /var/lib/tor
        }
        [ -d /var/log/tor ] || {
                mkdir -m 0755 -p /var/log/tor
                chown tor:tor /var/log/tor
        }
        procd_open_instance
        procd_set_param command /usr/sbin/tor --runasdaemon 0
        procd_close_instance
}
Ich möchte allerdings acht TOR Instanzen starten.
Jede Instanz hat ein eigenes config File "/etc/tor/torrc-1n":
Code:
SocksBindAddress 127.0.0.1
SocksPort 10010 
SocksPolicy accept *
AllowUnverifiedNodes middle,rendezvous 
Log notice syslog
RunAsDaemon 1 
User debian-tor
CircuitBuildTimeout 30 
NumEntryGuards 6
KeepalivePeriod 60 
NewCircuitPeriod 15
DataDirectory /var/lib/tor1 
PidFile /var/run/tor/tor-1.pid
Wie müsste ich das Start Skript abändern, damit beim Starten des Router acht Instanzen gestartet werden?
Im Internet habe ich folgedes Beispiel Skript gefunden:
Code:
#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions
#PID=`pidof -o %PPID /usr/bin/tor`
tor='/usr/bin/tor'
case "$1" in
        start)
                stat_busy "Starting Tor Daemon"
                #[ -z "$PID" ] && /usr/bin/tor &>/dev/null
                ${tor} -f /etc/tor/torrc-1
                ${tor} -f /etc/tor/torrc-2
                ${tor} -f /etc/tor/torrc-3
                ${tor} -f /etc/tor/torrc-4
                ${tor} -f /etc/tor/torrc-5
                ${tor} -f /etc/tor/torrc-6
                ${tor} -f /etc/tor/torrc-7
                ${tor} -f /etc/tor/torrc-8
    
                if [ $? -gt 0 ]; then
                        stat_fail
                else
                        add_daemon tor
                        stat_done
                fi
                ;;
        stop)
                stat_busy "Stopping Tor Daemon"
                #[ ! -z "$PID" ] && kill $PID &> /dev/null
                killall tor
                if [ $? -gt 0 ]; then
                        stat_fail
                else
                        rm_daemon tor
                        stat_done
                fi
                ;;
        restart)
                $0 stop
                sleep 3
                $0 start
                ;;
        *)
                echo "usage: $0 {start|stop|restart}"
esac
exit 0 
# vim: ft=sh ts=2 sw=2
Allerdings wurde das Skript für Arch Linux geschrieben und passt nicht für OpenWrt. Könnt Ihr mir weiterhelfen?

Vorab herzlichen Dank

Stefan Harbich
 
Zuletzt bearbeitet:
Hallo Ihr Lieben,
ich habe mir ein Start Skript gebaut:
Code:
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=50
STOP=50

BIN=tor
CONFIG=/etc/tor
LIB=/var/lib
RUN=/var/run/tor
TOR1=$CONFIG/tor1
TOR2=$CONFIG/tor2
TOR3=$CONFIG/tor3
TOR4=$CONFIG/tor4
TOR5=$CONFIG/tor5
TOR6=$CONFIG/tor6
TOR7=$CONFIG/tor7
TOR8=$CONFIG/tor8

start() {
        [ -d $RUN ] || {
                mkdir -m 0755 -p $RUN
                chmod 0700 $RUN
                chown tor:tor $RUN
        }
        [ -d $LIB/tor1 ] || {
                mkdir -m 0755 -p $LIB/tor1
                chmod 0700 $LIB/tor1
                chown tor:tor $LIB/tor1
        }
        [ -d $LIB/tor2 ] || {
                mkdir -m 0755 -p $LIB/tor2
                chmod 0700 $LIB/tor2
                chown tor:tor $LIB/tor2
        }
        [ -d $LIB/tor3 ] || {
                mkdir -m 0755 -p $LIB/tor3
                chmod 0700 $LIB/tor3
                chown tor:tor $LIB/tor3
        }
        [ -d $LIB/tor4 ] || {
                mkdir -m 0755 -p $LIB/tor4
                chmod 0700 $LIB/tor4
                chown tor:tor $LIB/tor4
        }
        [ -d $LIB/tor5 ] || {
                mkdir -m 0755 -p $LIB/tor5
                chmod 0700 $LIB/tor5
                chown tor:tor $LIB/tor5
        }
        [ -d $LIB/tor6 ] || {
                mkdir -m 0755 -p $LIB/tor6
                chmod 0700 $LIB/tor6
                chown tor:tor $LIB/tor6
        }
        [ -d $LIB/tor7 ] || {
                mkdir -m 0755 -p $LIB/tor7
                chmod 0700 $LIB/tor7
                chown tor:tor $LIB/tor7
        }
        [ -d $LIB/tor8 ] || {
                mkdir -m 0755 -p $LIB/tor8
                chmod 0700 $LIB/tor8
                chown tor:tor $LIB/tor8
        }
        $BIN -f $TOR1
        $BIN -f $TOR2
        $BIN -f $TOR3
        $BIN -f $TOR4
        $BIN -f $TOR5
        $BIN -f $TOR6
        $BIN -f $TOR7
        $BIN -f $TOR8
}

stop() {
        kill $(cat $RUN/tor1.pid)
        kill $(cat $RUN/tor2.pid)
        kill $(cat $RUN/tor3.pid)
        kill $(cat $RUN/tor4.pid)
        kill $(cat $RUN/tor5.pid)
        kill $(cat $RUN/tor6.pid)
        kill $(cat $RUN/tor7.pid)
        kill $(cat $RUN/tor8.pid)
}
Wäre es möglich das Skript schlanker zu schreiben wenn ich mit Schleifen arbeiten würde? Dazu bräuchte ich aber Eure Unterstützung.

Lieben Gruß von Stefan Harbich

- - - Aktualisiert - - -

Hallo Ihr Lieben,

es hat zwar etwas gedauert aber jetzt habe ich das Skript selbst gebaut:
Code:
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=50
STOP=50

BIN=tor
CONFIG=/etc/tor
LIB=/var/lib
RUN=/var/run/tor

start() {
        [ -d $RUN ] || {
                mkdir -m 0755 -p $RUN
                chmod 0700 $RUN
                chown tor:tor $RUN
        }

        for INST in 1 2 3 4 5 6 7 8; do
                LIB_INST=${LIB}/tor${INST}
                [ -d $LIB_INST ] || {
                        mkdir -m 0755 -p $LIB_INST
                        chmod 0700 $LIB_INST
                        chown tor:tor $LIB_INST
                }

                CFG_INST=${CONFIG}/tor${INST}
                $BIN -f $CFG_INST
        done
}

stop() {
        for INST in 1 2 3 4 5 6 7 8; do
            RUN_INST=${RUN}/tor${INST}.pid
            kill $(cat $RUN_INST)
        done
}
Es funktioniert sogar und startet sowie stoppt die Instanzen viel schneller.

LG von Stefan Harbich
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.