2016-06-23 21 views
1

PHPスクリプト内でperlスクリプトを実行しようとしています。実行中ですが短期間だけです。 最終的なPHPスクリプトが呼び出されるまでperlスクリプトの実行が終了するように期限を延長するには?PHPスクリプト内でPerlスクリプトの実行が完了するまで待つ

私はlocalhost上でphpスクリプトを実行しています。ここで

はコードです:あなたは過剰複雑な問題きたよう

<?php 

$maxChildren = 1; 
$pids = array(); 
$pid = pcntl_fork(); 

if ($pid) { // Parent 

    if ($pid < 0) { 
     // Unable to fork process, handle error here 
     continue; 
    } else { 
     $pids[$pid] = $pid; 
    } 

} else { 

    exec("perl -f script.pl "); 
    exit(0); 

} 

while(pcntl_waitpid(0, $status) != -1); 

?> 
+0

あなたはpcntl_waitpidためのwhileループを必要としません。あなたの質問は何ですか? – Devon

+0

perlスクリプトの実行がPHPスクリプト内でlocalhostで使用されるまでに制限時間を延ばす方法。 – Kabhir

+0

CLIで実行する場合は、時間制限はありません。どうやってそれを実行していて、何のエラーがありますか? – Devon

答えて

1

が見えます。私は何かが欠けていない限り、あなたの全体のコードをフォークし、すぐに子プロセスが終了するのを待っているのと同じ効果を持つことになります。このように、単一の行

<?php 
exec("perl -f script.pl "); 
?> 

に置き換えることができます。 perlスクリプトが終了する前に、単純にEXECを呼び出す前にset_time_limit(0)を追加したページタイミングを避けるために

<?php 
set_time_limit(0); 
exec("perl -f script.pl "); 
?> 
+1

末尾のスペースも削除できます( '-f'が必要かどうか懐疑的です)。 – melpomene

+0

元の投稿からラインをコピペしてくれてありがとうございました! – Keiji

+0

既に私はあなたの簡単な提案を試みました。しかし、それはうまくいきませんでした。それが私がフォークに切り替えた理由です。 – Kabhir

関連する問題