Thread fork und growisofs (12 answers)
Opened by cyborg0001 at 2011-03-31 10:30

cyborg0001
 2011-03-31 10:30
#147192 #147192
User since
2011-03-31
6 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

hoffentlich bin ich hier richtig. Ansonsten bitte den Thread umsetzen. Bin ganz neu hier und weiß noch nicht so Bescheid, aber nun zu meinem Problem.

Ich möchte ein Script schreiben, dass mir einfach über die Kommandozeile eine DVD brennen kann. Dazu nutze ich growisofs. Ich gable das Skript. Während der Child-Prozess den eigentlichen Brennvorgang startet, soll der Parent-Prozess lediglich überwachen und den Fortschritt feststellen. Sobald der Child fertig ist, beendet er sich und der Parent-Prozess verlässt die Endlosschleife und macht weiter (Lead Out, etc.). Der entsprechende Codeschnipsel dazu:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
  $pid_c=fork();   #create child as working slave
  if ($pid_c==0){system("growisofs -Z $device=$isofile >$tmpfile 2>&1");exit;}; #child process does the job
  if ($pid_c!=0)           #parent job only does output
  {
    for(;;)
    {
      select(undef,undef,undef,0.1);          #sleep for 0.1 sec
      # Fortschritt abprüfen...
      if (kill(0,$pid_c)==0){last;} #child finished; go on
    }
  }


Allerdings steigt das Programm mit folgendem Fehler aus (von growisofs)

Executing 'builtin_dd if=temp.iso of=/dev/sr0 obs=32k seek=0'
:-( waipid failed: No child processes

Führe ich den Befehl direkt auf der bash-Shell aus, funktioniert es tadellos. Auch ohne forken, also wenn ich im Skript einfach so growisofs laufen lasse und auf die Prüfung durch einen zweiten Prozess verzichte, geht es.

Sieht jemand, was ich falsch mache?

Besten Dank im Voraus.

Viele Grüße,
Cybi
Last edited: 2011-03-31 10:33:38 +0200 (CEST)

View full thread fork und growisofs