1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Talk Script für cccam

Dieses Thema im Forum "CS Root & Vserver" wurde erstellt von akopalueze, 23. August 2012.

  1. akopalueze
    Offline

    akopalueze Hacker

    Registriert:
    10. Januar 2009
    Beiträge:
    467
    Zustimmungen:
    156
    Punkte für Erfolge:
    43
    Beruf:
    Kraftfahrer
    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?
     
    #1
  2. phantom

    Nervigen User Advertisement

  3. aragorn
    Online

    aragorn Guest

    AW: Script für cccam

    um das beantworten zu können müsste man die fehlermeldung kennen
     
    #2
  4. akopalueze
    Offline

    akopalueze Hacker

    Registriert:
    10. Januar 2009
    Beiträge:
    467
    Zustimmungen:
    156
    Punkte für Erfolge:
    43
    Beruf:
    Kraftfahrer
    Ort:
    Auenland
    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
     
    #3
  5. aragorn
    Online

    aragorn Guest

    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 von einem Moderator bearbeitet: 25. August 2012
    #4
  6. akopalueze
    Offline

    akopalueze Hacker

    Registriert:
    10. Januar 2009
    Beiträge:
    467
    Zustimmungen:
    156
    Punkte für Erfolge:
    43
    Beruf:
    Kraftfahrer
    Ort:
    Auenland
    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?
     
    #5
  7. aragorn
    Online

    aragorn Guest

    AW: Script für cccam

    oke tschuldigung kleiner fehler.. änder mal die zeile
    Code:
        if [[ ! -n $PID ]]; then
    in:
    Code:
        if [ ! -n "$PID" ]; then
     
    #6
  8. akopalueze
    Offline

    akopalueze Hacker

    Registriert:
    10. Januar 2009
    Beiträge:
    467
    Zustimmungen:
    156
    Punkte für Erfolge:
    43
    Beruf:
    Kraftfahrer
    Ort:
    Auenland
    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:
     
    #7
  9. aragorn
    Online

    aragorn Guest

    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)
     
    #8
  10. akopalueze
    Offline

    akopalueze Hacker

    Registriert:
    10. Januar 2009
    Beiträge:
    467
    Zustimmungen:
    156
    Punkte für Erfolge:
    43
    Beruf:
    Kraftfahrer
    Ort:
    Auenland
    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.
     
    #9
  11. aragorn
    Online

    aragorn Guest

    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
     
    #10
  12. akopalueze
    Offline

    akopalueze Hacker

    Registriert:
    10. Januar 2009
    Beiträge:
    467
    Zustimmungen:
    156
    Punkte für Erfolge:
    43
    Beruf:
    Kraftfahrer
    Ort:
    Auenland
    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.
     
    #11
  13. aragorn
    Online

    aragorn Guest

    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 :)
     
    #12
  14. akopalueze
    Offline

    akopalueze Hacker

    Registriert:
    10. Januar 2009
    Beiträge:
    467
    Zustimmungen:
    156
    Punkte für Erfolge:
    43
    Beruf:
    Kraftfahrer
    Ort:
    Auenland
    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: 25. August 2012
    #13
  15. aragorn
    Online

    aragorn Guest

    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 ;)
     
    #14
  16. akopalueze
    Offline

    akopalueze Hacker

    Registriert:
    10. Januar 2009
    Beiträge:
    467
    Zustimmungen:
    156
    Punkte für Erfolge:
    43
    Beruf:
    Kraftfahrer
    Ort:
    Auenland
    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: 25. August 2012
    #15

Diese Seite empfehlen