2013-07-30 1 views
0

이전에이 질문을 보았습니다. 반복을 위해 유감스럽게 생각하지만 아직 내 문제에 대한 대답을 찾지 못했습니다.PHP 페이지가 백그라운드에서 실행되고 시간 제한이없는 bash 스크립트를 시작합니다.

저는 실행하는 데 시간이 걸리는 bash 스크립트가 있습니다. 웹 페이지에서 사용자가 설정 한 변수를 전달해야합니다 (보안에 대한 유효성 검사가 많을 까봐 걱정하지 마십시오)

bash 파일을 시작할 수는 있지만 20 초 후에 실행할 수 있습니다. 웹 페이지.

터미널에서 실행하면 절대 실행됩니다. 나는 다음과 같은 그래서

확인 :

$bashFile = shell_exec('./CoinCreationBashFile.sh "'.$coinName.'" "'.$coinNameAbreviation.'" "'.$blockReward.'" "'.$blockSpacing.'" "'.$targetTimespan.'" "'.$totalCoins.'" "'.$firstBitAddy.'" "'.$seedNode.'" "'.$seedName.'" "'.$headline.'" '); 

지금이 bash는 파일을 실행,하지만 난 읽어 대한 Shell_exec php with nohup 및 해낸 다음

$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를 "프로세스에서 작업자 분리"로 보라고 제안 했으므로이 경로를 따라야 할 수도 있습니다. 사전

답변

1

에서

많은 감사는 대신 SSH 또는 cronjob에로 이것을 실행 해 더 다음 60 초 걸릴 경우 브라우저를 통해 스크립트를 runging 시도하지 말아.

+0

PHP 페이지에서 cronjob에 변수를 전달할 수 있습니까? 그리고이 유용하지 않았다 ... http://stackoverflow.com/questions/4918982/what-is-the-code-to-call-a-cron-job-from-php 그 어떤 대답? – Fuzzybear

+0

주기적으로 실행하고 싶지 않으므로 cron 작업을 수행 할 수 없습니다. 요청시 실행해야합니다. – Fuzzybear

+0

이 시나리오에서 실수를 저지르는 다른 사람들을 위해 제 해결 방법은 PHP 페이지에서 필요한 변수를 작성하는 것입니다. 일반적으로 빈 디렉토리에있는 작은 .txt 파일. 그런 다음 cron 작업을 설정하여이 디렉토리에 파일이 있는지 확인하십시오. 변수를 추출하고 cron 작업에서 루트로 스크립트를 실행하십시오. 한번은 알아 내지 못한 일이별로 없습니다. Ethan에게 조언 해 주셔서 고맙습니다. – Fuzzybear