0

我以前在这里看到过这个问题,所以我很抱歉重复,但我仍然没有找到我的问题的答案。

我有一个需要一段时间才能运行的 bash 脚本。它需要传递用户在网页上设置的变量(不要担心会有大量的安全验证等)

我可以让 bash 文件启动,但它可能会在 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 以“将工作人员与进程分离”,所以我可能不得不走这条路。

提前谢谢了

4

1 回答 1

1

如果脚本需要超过 60 秒,请不要尝试通过浏览器运行脚本,而是尝试使用 SSH 或作为 cronjob 运行它。

于 2013-07-30T21:57:29.803 回答