以前にこの質問を見たことがあるので、繰り返して申し訳ありませんが、私の問題に対する答えはまだ見つかりません.
実行に時間がかかる bash スクリプトがあります。Webページでユーザーが設定した変数を渡す必要があります(セキュリティなどのために十分な検証があることを心配しないでください)
bash ファイルを起動することはできますが、Web ページから実行すると、おそらく 20 秒後に停止します。
ターミナルから実行すると、まったく問題なく実行されます。
わかりましたので、私は次のものを持っています:
$bashFile = shell_exec('./CoinCreationBashFile.sh "'.$coinName.'" "'.$coinNameAbreviation.'" "'.$blockReward.'" "'.$blockSpacing.'" "'.$targetTimespan.'" "'.$totalCoins.'" "'.$firstBitAddy.'" "'.$seedNode.'" "'.$seedName.'" "'.$headline.'" ');
これでbashファイルが実行されますが、nohupを使用してShell_exec phpについて調べたところ、次のようになりました。
$bashFile = shell_exec('nohup ./CoinCreationBashFile.sh "'.$coinName.'" "'.$coinNameAbreviation.'" "'.$blockReward.'" "'.$blockSpacing.'" "'.$targetTimespan.'" "'.$totalCoins.'" "'.$firstBitAddy.'" "'.$seedNode.'" "'.$seedName.'" "'.$headline.'" >/dev/null 2>&1 &');
しかし、これはまだ短時間で死亡しました:(
したがって、set_time_limit と max_execution_time について調べて、これらを php.ini ファイルで 10000000 のように設定します....それでもまだ喜びはありません :(
タイムアウトや終了せずに bash スクリプトを実行したいだけです。そこに中間ステップを入れる必要はありませんが、ZeroMQを見て「ワーカーをプロセスから切り離す」ことを誰かが提案したので、このルートに行かなければならないかもしれません。
よろしくお願いします