Anzeige:
Ergebnis 1 bis 2 von 2

Thema: seltsam hohe CPU-last bei exec

  1. #1
    kallekraemer
    Gast

    seltsam hohe CPU-last bei exec

    moin,

    ich probiere gerade 3 programme parallel aus einem shellscript zu starten:
    ich dachte das geht so:

    start_record(){
    lla_dmxrecorder $filename &
    arecord -f cd | lame - $filename.wav &
    }


    danach starten die auch alle brav aber:

    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    5881 mart 25 0 2904 1024 888 R 99.5 0.2 0:12.15 lla_dmxrecorder


    das eine programm hat auf einmal 99% cpu usage...hmmm
    normalerweise, wenn ich das starte nur 0,2%

    und wenn ich das "&" weglasse hats auch nur 0,2%

    irgendwas verstehe ich falsch...oder mein lla_dmxrecorder programm hat einen bug...

    wär schön wenn euch dazu was einfällt.

    peace
    mart

  2. #2
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Moin,

    ich kenne die Programme nicht, die Du da anschmeisst, aber gehe ich recht in der Annahme, dass arecord bzw. lame als Input die von lla_dmxrecorder erzeugte Datei verarbeiten?

    Mit dem & am Zeilenende schickst Du die Programme in den Hintergrund, das nächste Kommando legt also los, bevor das davor stehende fertig ist. So geht das natürlich nicht - da murksen die Programme ja parallel in den Dateien rum. Du musst schon darauf achten, dass das liefernde Programm fertig ist, wenn die Weiterverarbeitung startet. Wenn ich mit meiner Annahme richtig liege, dann probier mal das (ungetestet):
    Code:
    start_record(){
     (lla_dmxrecorder $filename &&  arecord -f cd | lame - $filename.wav) &
     }
    Das sollte dafür sorgen, dass lla_dmxrecorder erst brav seine Aufgabe erledigt, und nur wenn der mit Returncode 0 zurück ist starten arecord und lame - die Klammern verbannen das in eine Subshell und das & dahinter schickt die in den Hintergrund.

    Jan

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •