2012-02-01 3 views
2

私はPerl CGIを使用しています。バックグラウンドでPerl CGI経由でSCPコマンドを実行しています。いいえバックグラウンドプロセスを次々と実行する方法

system("scp -r machinename:/PathOfFile/ /Path/WhereToCopyIt/ &") 

このコピー処理には時間がかかりますが、15分とします。 このコピープロセスが完了したら、私に電子メールを送ってほしい。 しかし、私の問題は、このコマンドがバックグラウンドで実行されていることです。どうすればメールを送ることができますか? 私はメールを送信する方法を知っていますが、プロセスがバックグラウンドで実行されているときにメールを送信する方法がわかりません。

答えて

1

アクションを順番に実行するバックグラウンドジョブを開始します。基本的には

system(qq'sh -c "scp -r machinename:/PathOfFile/ /Path/WhereToCopyIt/; 
      echo Done | /sendmail [email protected]" &') 

あなたは、おそらく別のファイルにバックグラウンドスクリプトをカプセル化し、または少なくともいくつかのエラーチェックを追加したいです。

5

なぜでしょうかfork

my $pid = fork; 

if ($pid == 0) { # Child 

    exec(...); # Without the '&' 
    exit($? >> 8); 
} 

else {    # Parent 

    waitpid $pid, 0; 
} 

情報(おそらくすぎ?)多くのためperldoc perlforkperldoc perlipcを参照してください。

関連する問題