[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
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,840
Beiträge
2,219,268
Mitglieder
371,543
Neuestes Mitglied
Brainbanger
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.