for-Schleife vorzeitig beenden

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von oyster-manu, 07.09.2012.

  1. #1 oyster-manu, 07.09.2012
    oyster-manu

    oyster-manu toast

    Dabei seit:
    26.06.2003
    Beiträge:
    1.055
    Zustimmungen:
    0
    Hallo,

    ich habe mir ein Skript geschrieben das mir den Audiostream einer Video-DVD in wav-Dateien kapitelweise speichert. Das extrahieren des Audiostreams erfolgt über eine for-Schleife die das Programm "transcode" aufruft.
    Wenn ich mein Skript nun vorzeitig beende (mit Strg-C oder kill pid), läuft transcode aber weiterhin. Sogar wenn ich transcode über kill transcode-pid beende, wird es durch die for-Schleife wieder aufgerufen, um das nächste Kapitel der DVD zu extrahieren.
    Die For-Schleife muss also irgendwie weiterhin aktiv sein. Wie beende also diese for-Schleife ordnungsgemäß?

    Viele Grüße
    Manu
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 tgruene, 07.09.2012
    tgruene

    tgruene Routinier

    Dabei seit:
    02.02.2012
    Beiträge:
    418
    Zustimmungen:
    0
    Mit Ctrl-C in der aufrufenden Konsole unterbrichst Du nur den aktuellen Prozess, d.h., den aktuellen Schleifendurchlauf. Du muesstest die PID des uebergeordneten Skripts beenden, also z.B. in einer anderen Konsole nach "ps aux | grep mein_skript_name" suchen und die entsprechende PID mit kill beenden.
     
  4. #3 oyster-manu, 07.09.2012
    oyster-manu

    oyster-manu toast

    Dabei seit:
    26.06.2003
    Beiträge:
    1.055
    Zustimmungen:
    0
    Das funktioniert fast :) Wenn ich das Skript kille, ist das Skript auch beendet, transcode läuft aber weiter. Vermutlich weil es als unabhängiger Prozess läuft (ohne dass ich das explizit angegeben hätte)? Neben transcode laufen auch noch tcdecode, tccat und tcdemux, ohne dass ich sie überhaupt im Skript erwähne.
     
  5. mmi

    mmi Jungspund

    Dabei seit:
    23.08.2012
    Beiträge:
    16
    Zustimmungen:
    0
    Nur als Tipp gedacht, da selbst noch keinen Bedarf gehabt:

    Das Signal (CTRL-C = SIGTERM) gezielt mit eigener Routine behandeln, siehe z.B. "trap".

    Sicherlich ist es möglich, innerhalb eines Scripts ein Signal abzufangen und - in Deinem Fall - "transcode" und seine Subprozesse nach CTRL-C entsprechend zu killen sowie anschliessend mit "exit" das Script zu beenden.
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

for-Schleife vorzeitig beenden

Die Seite wird geladen...

for-Schleife vorzeitig beenden - Ähnliche Themen

  1. Ordnerdurchlauf for-Schleife & find MIT Leerzeichen

    Ordnerdurchlauf for-Schleife & find MIT Leerzeichen: Hallo alle zusammen :), ich bin ein Neuling in Sachen shellscriping und schreibe zur Zeit an einem kleinen Script und hänge seit Tagen etwas in...
  2. Max_Args trotz for-Schleife überschritten...

    Max_Args trotz for-Schleife überschritten...: Hallo Leute, ich habe ein kleines Problem mit einem Script von mir. Ich habe das unten gezeigte Script geschrieben um sehr viele Dateien von...
  3. Ungerade Dateien Filtern / For-Schleife

    Ungerade Dateien Filtern / For-Schleife: Hallo Jungs, ich hoffe ihr könnt mir weiterhelfen. Hier die Aufgabe: In das Verzeichnis "/pfad/zu/den/dateien" wechseln. Dort stehen 20...
  4. Java: geschachtelte For-Schleife oder Logikproblem

    Java: geschachtelte For-Schleife oder Logikproblem: Hi, Ich grüble gerade über ein Problem bei dem ich einfach nicht dahinterkomme. Der Code ist ein Ausschnitt aus meinem TicTacToe-Programm....
  5. for-Schleife

    for-Schleife: Hi, ich hab mal ne ganz dumme Frage... ;) Ich hab ein Programm, dass mit einem Parameter ausgeführt werden soll. Da ich die ganzen Parameter...