Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Script für cccam

    Nobody is reading this thread right now.

akopalueze

Hacker
Registriert
10. Januar 2009
Beiträge
475
Reaktionspunkte
146
Punkte
103
Ort
Auenland
Hallo,

ich habe mir mal ein Script welches aus einem anderen Thread stammt und für Oscam gedacht war auf meine CCam Konfiguration umgeschrieben,
um mit cccam start, cccam stop und cccam restart eine einfachere Anwendung zu ermöglichen.

Dieses Script sieht so aus:
Code:
#!/bin/sh
CAMNAME="CCcam Server"
# end

# This method starts CCcam
start_cam ()
{
/emu/cccam/CCcam.x86 &
sleep 2
}
# This method stops CCcam
stop_cam ()
{
pkill CCcam.x86
}
case "$1" in
start)
echo "[SCRIPT] $1: $CAMNAME"
start_cam
;;
stop)
echo "[SCRIPT] $1: $CAMNAME"
stop_cam
;;
restart)
echo "Restarting $CAMNAME"
stop_cam
start_cam
;;
*)
"$0" stop
exit 1
;;
esac
exit 0

Ich habe auch die rc.local angepasst um es automatisch starten zu lassen.

Mit cccam 2.1.1 funktioniert auch alles bestens.
start, stop und restart kein Problem.

Ersetze ich die cccam.x86 jedoch mit der 2.1.3 oder 2.1.4-Version wird diese zwar nach einem reboot gestartet,
wenn ich sie dann stoppe funktioniert ein erneuter start bzw restart jedoch nicht.
Führe ich dann /emu/cccam/CCcam.x86 aus startet diese auch wieder.

Kann mir jemand sagen woran das liegt?
 
AW: Script für cccam

Es kommt keine fehlermeldung. Wenn ich z.b. cccam restart eingebe stoppt cccam, startet dann aber nicht mehr, obwohl das angezeigt wird. Wie gesagt bei cccam 2.1.1 funzt alles wunderbar. Nur bei den neueren Versionen nicht. Das ist es was mich so wundert.

Gesendet von meinem HTC One S mit Tapatalk 2
 
AW: Script für cccam

naja könnte vielleicht daran liegen das zwischen stop und start nicht gewartet wird bis der prozess auch wirklich beendet wurde (das dauert oft ein bischen)
also 2 möglichkeiten:

1)
Code:
#!/bin/sh
CAMNAME="CCcam Server"
# end

# This method starts CCcam
start_cam () {
    /emu/cccam/CCcam.x86 &
}

# This method stops CCcam
stop_cam () {
    pkill CCcam.x86
    [COLOR=#ff0000]sleep 2[/COLOR]
}

case "$1" in
    start)
        echo "[SCRIPT] $1: $CAMNAME"
        start_cam
    ;;
    stop)
        echo "[SCRIPT] $1: $CAMNAME"
        stop_cam
    ;;
    restart)
        echo "Restarting $CAMNAME"
        stop_cam
        start_cam
    ;;
    *)
        "$0" stop
        exit 1
    ;;
esac

exit 0

2)
Code:
#!/bin/sh
CAMNAME="CCcam Server"
# end

# This method starts CCcam
start_cam () {
    /emu/cccam/CCcam.x86 &
[COLOR=#ff0000]    if [ $? -ne "0" ]; then
        echo "$CAMNAME : Fehler beim starten!"
    else
        echo "$CAMNAME : gestartet"
    fi[/COLOR]
}

# This method stops CCcam
stop_cam () {
    pkill CCcam.x86
    sleep 2
[COLOR=#ff0000]    PID="$(pgrep -x CCcam.x86)"
    if [ -n "$PID" ]; then
        echo "$CAMNAME : beendet"
    else
        pkill -9 CCcam.x86
        echo "$CAMNAME : gekillt"
    fi[/COLOR]
}

case "$1" in
    start)
        echo "[SCRIPT] $1: $CAMNAME"
        start_cam
    ;;
    stop)
        echo "[SCRIPT] $1: $CAMNAME"
        stop_cam
    ;;
    restart)
        echo "Restarting $CAMNAME"
        stop_cam
        start_cam
    ;;
    *)
        "$0" stop
        exit 1
    ;;
esac

exit 0
wenn 1) nicht geht probierste 2)


den *) im case würd ich aber auch noch ein bischen abändern zumal das exit 1 da eigentlich fehl am platz ist:
Code:
    *)
        echo "Usage: $0 {start|stop|restart}"
    ;;
 
Zuletzt bearbeitet von einem Moderator:
AW: Script für cccam

Erstmal Danke für die Hilfe.

Leider funktionieren diese Alternativen auch nicht.

Mit 2.1.1 geht es und mit 2.1.3 nicht.

Das sieht bei beiden so aus:
Code:
root@debian:~# cccam restart
 Restarting CCcam Server
 /bin/cccam: 45: [[: not found
 CCcam Server : gekillt
 CCcam Server : gestartet

Nur kann ich danach wieder auf 2.1.1 über webif zugreifen und auf 2.1.3 nicht :emoticon-0106-cryin
Schon seltsam, oder?
 
AW: Script für cccam

Das sieht bei beiden so aus:
Code:
root@debian:~# cccam restart
 Restarting CCcam Server
 /bin/cccam: 45: [[: not found
 CCcam Server : gekillt
 CCcam Server : gestartet
oke tschuldigung kleiner fehler.. änder mal die zeile
Code:
    if [[ ! -n $PID ]]; then
in:
Code:
    if [ ! -n "$PID" ]; then
 
AW: Script für cccam

/bin/cccam: 45: [[: not found

die Zeile kommt jetzt nicht mehr.
Ansonsten das selbe in grün :emoticon-0120-doh:
 
AW: Script für cccam

komisch. bei mir funktioniert das..
poste bitte noch mal das script wie du es jetzt hast

oder vielleicht den "sleep 2" auf "sleep 5" hoch setzen vielleicht brauch er ein bischen mehr zeit
ansonsten kannst du es auch mit debug starten um zu sehen was das script macht: bash -x /bin/cccam restart
(ausgabe bitte auch in
Code:
 posten)


hier noch eine überarbeitete und leicht veränderte version des scripts:
[code]#!/bin/sh
CAMNAME="CCcam Server"
CAMBIN="CCcam.x86"
CAMBINPATH="/emu/cccam"
# end

# This method starts CCcam
start_cam () {
    PID="$(ps auxw | grep -v grep | grep -v $0 | grep -w $CAMBIN | awk {'print $2'})"
    if [ ! -z "$PID" ]; then
        echo "$CAMNAME : ist bereits gestartet"
    else
        $CAMBINPATH/$CAMBIN &
        if [ $? -ne "0" ]; then
            echo "$CAMNAME : Fehler beim starten!"
        else
            echo "$CAMNAME : gestartet"
        fi
    fi
}

# This method stops CCcam
stop_cam () {
    PID="$(ps auxw | grep -v grep | grep -v $0 | grep -w $CAMBIN | awk {'print $2'})"
    if [ -z "$PID" ]; then
        echo "$CAMNAME : ist bereits beendet"
    else
        pkill $CAMBIN
        sleep 2
        PID="$(ps auxw | grep -v grep | grep -v $0 | grep -w $CAMBIN | awk {'print $2'})"
        if [ -z "$PID" ]; then
            echo "$CAMNAME : beendet"
        else
            kill -9 $CAMBIN
            killall -9 $PID >/dev/null 2>&1
            echo "$CAMNAME : gekillt"
        fi
    fi
}

case "$1" in
    start)
        echo "[SCRIPT] $1: $CAMNAME"
        start_cam
    ;;
    stop)
        echo "[SCRIPT] $1: $CAMNAME"
        stop_cam
    ;;
    restart)
        echo "Restarting $CAMNAME"
        stop_cam
        sleep 2
        start_cam
    ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
    ;;
esac

exit 0
vorraussetzung: apt-get install psmisc
(pkill und pgrep setzen das paket "procps" vorraus)
 
AW: Script für cccam

momentane config:
Code:
#!/bin/sh
CAMNAME="CCcam Server"
# end

# This method starts CCcam
start_cam () {
    /emu/cccam/CCcam.x86 &
    sleep 5
    if [ $? -ne "0" ]; then
        echo "$CAMNAME : Fehler beim starten!"
    else
        echo "$CAMNAME : gestartet"
    fi
}

# This method stops CCcam
stop_cam () {
    pkill CCcam.x86
    sleep 5
    PID="$(pgrep -x CCcam.x86)"
    if [ ! -n $PID ]; then
        echo "$CAMNAME : beendet"
    else
        pkill -9 CCcam.x86
        echo "$CAMNAME : gekillt"
    fi
}

case "$1" in
    start)
        echo "[SCRIPT] $1: $CAMNAME"
        start_cam
    ;;
    stop)
        echo "[SCRIPT] $1: $CAMNAME"
        stop_cam
    ;;
    restart)
        echo "Restarting $CAMNAME"
        stop_cam
        start_cam
    ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
    ;;
esac

exit 0

bash -x /bin/cccam restart :

Code:
root@debian:~# bash -x /bin/cccam restart
+ CAMNAME='CCcam Server'
+ case "$1" in
+ echo 'Restarting CCcam Server'
Restarting CCcam Server
+ stop_cam
+ pkill CCcam.x86
+ sleep 5
++ pgrep -x CCcam.x86
+ PID=
+ '[' '!' -n ']'
+ pkill -9 CCcam.x86
+ echo 'CCcam Server : gekillt'
CCcam Server : gekillt
+ start_cam
+ sleep 5
+ /emu/cccam/CCcam.x86
+ '[' 0 -ne 0 ']'
+ echo 'CCcam Server : gestartet'
CCcam Server : gestartet
+ exit 0
root@debian:~#

Hab gerade festgestellt, das es funzt wenn ich "bash -x /bin/cccam restart" eingebe,
aber es funzt nicht wenn ich nur "cccam restart" eingebe.
 
AW: Script für cccam

hast du das script /bin/cccam denn überhaupt ausführbar gemacht? -> chmod 755 /bin/cccam

oben im script steht "#!/bin/bash" das ist der interpret der den code verarbeiten soll. wenn man das script mit "bash /bin/cccam" ausführt ist das quasi überflüssig aber wenn man es eben direkt ausführt "/bin/cccam" wird besagte erste zeile beachtet
 
AW: Script für cccam

Ja klar. Rechte sind 755.

Mit der neuen überarbeiteten config von dir kommt jetzt zumindest nicht mehr
cccam gekillt sondern cccam beendet.

Das komische ist ja wie gesagt das cccam 2.1.1 problemlos funktioniert.

Habe sleep auch schon mal auf 10 hochgesetzt, bringt aber auch nix.
 
AW: Script für cccam

wenn es mit " bash /bin/cccam restart " funktioniert aber nicht mit " /bin/cccam restart " aber die rechte passen usw bin ich jetzt leider auch überfragt..


glaube zwar nicht das es was bringen würde aber was ist denn wenn du ipc installierst und die script von ipc benutzt? wenn es damit dann funktioniert weiss ich zwar nicht woran es lag aber dann ginge es zumindest :)
 
AW: Script für cccam

Vom IPC wollte ich eigentlich weg und nur das nötigste auf dem Server haben.
Außerdem wollte ich mich halt auch mal n bisschen in die Materie reindenken.
Ist nur mein Test-Futro, auf meinem normalen habe ich IPC und da läuft auch alles mit cccam 2.1.3.

Code:
root@debian:~# bash -x /bin/cccam start
+ CAMNAME='CCcam Server'
+ CAMBIN=CCcam.x86
+ CAMBINPATH=/emu/cccam
+ case "$1" in
+ echo '[SCRIPT] start: CCcam Server'
[SCRIPT] start: CCcam Server
+ start_cam
++ grep -v /bin/cccam
++ grep -v grep
++ grep -w CCcam.x86
++ ps auxw
++ awk '{print $2}'
+ PID=
+ '[' '!' -z '' ']'
+ '[' 0 -ne 0 ']'
+ echo 'CCcam Server : gestartet'
CCcam Server : gestartet
+ exit 0
root@debian:~#[COLOR=#ff0000] + /emu/cccam/CCcam.x86[/COLOR]

root@debian:~# cccam stop
[SCRIPT] stop: CCcam Server
CCcam Server : beendet
root@debian:~# cccam start
[SCRIPT] start: CCcam Server
CCcam Server : gestartet
root@debian:~# cccam stop
[SCRIPT] stop: CCcam Server
CCcam Server : ist bereits beendet
root@debian:~#

Das rote schreibt der von alleine dahin.
An dem anderen kannst du sehen das er zwar hinschreibt "CCcam Server : gestartet",
es ist jedoch gar nicht gestartet.

Muss n Fehler in der Matrix sein.....

mit "bash /bin/cccam start" geht es übrigens auch....
 
Zuletzt bearbeitet:
AW: Script für cccam

naja das rot kann ne kleine verzögerung sein das er es erst gestartet hat nachdem eigentlich alles bereits durchgerattet ist. wegen des "&" hinter der zeile wird der befehl im hintergrund abgewickelt und das script nicht aufgehalten

beim rest sagt er am ende das es bereits beendet wurde. da weiss ich aber nicht in was für einem zeitabstand du das alles ausgeführt hast da kann es wie gesagt etwas dauern bis es auch wirklich gestartet ist und somit auch noch nicht im "ps aux" auftaucht. im sekunden takt starten stoppen usw ist nicht normal und kommt auch nicht in der praxis vor. wie lange cccam zum starten brauch kommt unter anderem auch darauf an wieviele daten cccam einlesen muss also grösse der cfg und zum beispiel channelinfo usw und natürlich auch wie schnell der rechner/cf is ;)
 
AW: Script für cccam

Ich habe dem schon genügend Zeit gegeben, daran wird es nicht liegen.
Mit cccam 2.1.1 und "cccam start"
oder mit cccam 2.1.3 und "bash /bin/cccam start"
oder auch cccam 2.1.3 und "bash cccam start"
geht es in sekundenschnelle.

Nur halt mit cccam 2.1.3 und "cccam start" nicht.
Ist auch nicht weiter schlimm, kann den Befehl ja mit bash eingeben;
ist halt nur komisch und hätte ich gerne gewußt, wieso das so ist.

was auch komisch ist:
bash cccam start geht
bash cccam stop geht nicht (Dienst wird nicht beendet)
bash cccam restart geht nicht (Dienst wird auch nicht beendet)
bash /bin/cccam start geht
bash /bin/cccam stop geht
bash /bin/cccam restart geht

Meine aktuelles script sieht so aus:
Code:
#!/bin/sh
CAMNAME="CCcam Server"
CAMBIN="CCcam.x86"
CAMBINPATH="/emu/cccam"
# end

# This method starts CCcam
start_cam () {
    PID="$(ps auxw | grep -v grep | grep -v $0 | grep -w $CAMBIN | awk {'print $2'})"
    if [ ! -z "$PID" ]; then
        echo "$CAMNAME : ist bereits gestartet"
    else
        $CAMBINPATH/$CAMBIN &
        if [ $? -ne "0" ]; then
            echo "$CAMNAME : Fehler beim starten!"
        else
            echo "$CAMNAME : gestartet"
        fi
    fi
}

# This method stops CCcam
stop_cam () {
    PID="$(ps auxw | grep -v grep | grep -v $0 | grep -w $CAMBIN | awk {'print $2'})"
    if [ -z "$PID" ]; then
        echo "$CAMNAME : ist bereits beendet"
    else
        pkill $CAMBIN
        sleep 2
        PID="$(ps auxw | grep -v grep | grep -v $0 | grep -w $CAMBIN | awk {'print $2'})"
        if [ -z "$PID" ]; then
            echo "$CAMNAME : beendet"
        else
            kill -9 $CAMBIN
            killall -9 $PID >/dev/null 2>&1
            echo "$CAMNAME : gekillt"
        fi
    fi
}

case "$1" in
    start)
        echo "[SCRIPT] $1: $CAMNAME"
        start_cam
    ;;
    stop)
        echo "[SCRIPT] $1: $CAMNAME"
        stop_cam
    ;;
    restart)
        echo "Restarting $CAMNAME"
        stop_cam
        sleep 2
        start_cam
    ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
    ;;
esac

exit 0

Falls noch jemand eine Idee hat oder Interesse sich des Problems anzunehmen....
 
Zuletzt bearbeitet:
Zurück
Oben