이전에이 질문을 보았습니다. 반복을 위해 유감스럽게 생각하지만 아직 내 문제에 대한 대답을 찾지 못했습니다.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를 "프로세스에서 작업자 분리"로 보라고 제안 했으므로이 경로를 따라야 할 수도 있습니다. 사전
PHP 페이지에서 cronjob에 변수를 전달할 수 있습니까? 그리고이 유용하지 않았다 ... http://stackoverflow.com/questions/4918982/what-is-the-code-to-call-a-cron-job-from-php 그 어떤 대답? – Fuzzybear
주기적으로 실행하고 싶지 않으므로 cron 작업을 수행 할 수 없습니다. 요청시 실행해야합니다. – Fuzzybear
이 시나리오에서 실수를 저지르는 다른 사람들을 위해 제 해결 방법은 PHP 페이지에서 필요한 변수를 작성하는 것입니다. 일반적으로 빈 디렉토리에있는 작은 .txt 파일. 그런 다음 cron 작업을 설정하여이 디렉토리에 파일이 있는지 확인하십시오. 변수를 추출하고 cron 작업에서 루트로 스크립트를 실행하십시오. 한번은 알아 내지 못한 일이별로 없습니다. Ethan에게 조언 해 주셔서 고맙습니다. – Fuzzybear