Einleitung Non-warten auf Hintergrund-Prozess in Perl

Habe ich ein Perl-Skript benötigt, um kick-off ein anderer Prozess im hintergrund und verlassen Sie das Menü ohne zu warten, für die anderen Skript zu beenden. Es gibt viele threads auf StackOverflow, die Abdeckung, wie zu warten, in Perl oder wie Sie nicht warten, für andere Programmiersprachen, aber ich kann nicht scheinen, um herauszufinden, die richtige Antwort für Perl.

Ich habe gelesen, bis ganz ein bisschen und dachte, dass ich die richtigen Dinge tun, aber keiner meiner versuche scheinen zu funktionieren richtig. Hier sind alle Varianten die ich bisher ausprobiert habe ohne Erfolg:

system(qq|perl /util/script.pl $id|);

system(qq|perl /util/script.pl $id &|);

exec(qq|perl /util/script.pl $id|);

exec(qq|perl /util/script.pl $id &|);

Mit jeweils der übergeordnete Prozess weiterhin warten, bis das Kind fertig ist, bevor man Sie verlässt. Bitte lassen Sie mich wissen, was mache ich falsch und der richtige Weg zur Gabelung der Prozess im hintergrund.

Dank im Voraus für Eure Hilfe!


Vollständigen code zu Debuggen. Beachten Sie, dass die API->Funktion () - Aufrufe sind Objekt-orientierte Module die code-Basis verwendet, die für bestimmte Funktionen, die Interaktionen mit der Datenbank usw:

sub Add {
    my $self = shift;
    my $domain = shift;

    if(!$self->IsValid($domain)) { return; }

    my $SQL = qq| insert into domains set added=NOW(),domain=| . API->Database->Quote($domain);
    my $sth = API->DatabaseQuery($SQL);

    $SQL = qq| select last_insert_id() |;
    $sth = API->DatabaseQuery($SQL);
    my $id = $sth->fetchrow_array();

    my $command = qq|perl /home/siteuser/util/new.pl $id &|;
    system($command);

    return {'id'=>$id,'domain'=>$domain};
}
Die Eltern wartet der IO mit dem Kind geschlossen werden. Verwenden Sie (oder zumindest anschauen) Proc::Daemon und 'perldoc -q-daemon" auf, wie zu trennen die Eltern vom Kind.
Sie gehen auf 'akzeptieren' keine Antwort hier?

InformationsquelleAutor Russell C. | 2010-12-13

Schreibe einen Kommentar