2011-04-08 1 views
0

모두에게 좋은 날. 나는 특정 URL에 액세스하는 프로세스를 시작해야이 세상 어딘가에 컴퓨터에서PHP + shell - PHP에서 프로세스 시작

:

나는이 작업을 수행해야합니다. 유일한 문제는 프로세스가 5 시간 이상 지속될 수 있고 일부 오류가 반환 될 수 있기 때문입니다 (프로세스가이 프로세스로 이동합니다) exec, shell_exec 등과 같은 PHP 명령이 작동하지 않습니다 (왜 그런지는 모르지만 모두 ... all

  • 내가

모든 것이 잘 작동하지만 내가 필요로하는 스크립트 파일을 작성하는 스크립트를

  • 사용 PHP를 실행하는 크론을했다 : 오류를 반환 등) 실행을 중지 ... 그래서 나는이 시도 프로세스가 시작될 때 알려주는 카운터를 반환하려면 쉘 스크립트를 편집하는 PHP 스크립트를 실행할 때 시스템의 시간을 반환하고 다음 번 전체 계산까지 계산을 시작합니다. e (스크립트가 실행될 때).

    이제 유일한 문제는 이것이다 :

    카운터는 확인을 작동하는 것 같다 ...뿐만 아니라 프로세스가 시작하는 데 시간이 필요하고 시간이 3-4 초에서 1 분 다를 수 있습니다. 제 질문은 ... 적어도 프로세스가 시작될 정확한 시간과 시작된 정확한 시간이 아니라면 언젠가 힌트를 얻을 수 있습니까?

    나는 파일과 PHP 스크립트에 쓰기처럼 몰라 ... 뭔가가 변경 될 때 볼 수있는 분 읽어?

    좋아요 ... 나는 몇 가지 세부 사항을 추가 할 것입니다 약속 : 프로세스 스트리밍

    . 살고 있다. 스트림이

    내가 스트리밍는 FFmpeg을 사용을 시작할 때

    는 사용자에게 카운터를 제공 스트림을 생성 : 그래서 내가해야 할 일이다.

    // Create a file called script.sh 
    
        $string = "ffserver & ffmpeg -i pipe.avi http://localhost:8090/feed1.ffm& echo exit 0 > script.sh& exit 0"; 
    
        //write string to script.sh 
        //create a file that contains the exact time when the script was run. 
    

    크론은 다음과 같습니다 : :이 start.php 같은 뭔가를

    * * * * * /var/www/html/script.sh > /dev/null 
        and some other crons that doesn't matter 
    

    은 그래서 스크립트가 실행하고 다음 분 때까지 계산 된 시간을 가져옵니다 카운터를 만들 수 있습니다 cron이 실행됩니다. 문제는 ffmpeg가 시작될 때까지 (코덱 테스트, 파일 검사 등) 시간이 필요하다는 것입니다. 그 시간을 가져 와서 타이머에 포함시켜야하므로 스트림에서 "Hello"라고 말하는 사람이 시작됩니다. "좋아,이게 효과가 있니? 응?여보세요." 사용자가 처음 3-4 문장을 잃어 버리는 것은 좋지 않습니다. 그래서 ffmpeg가 시작되고 어떻게 든 PHP 스크립트에 전달할 순간이 필요합니다. 나는 그곳에서 관리 할 수 ​​있습니다.

    내가 crontab을은 최근 crontab을 매 5 분을 순환하지만, 한 장소에서 일했다
  • +0

    나는 그 질문을 이해하지 못한다. 명확히 해 주시겠습니까? – Nick

    +0

    http://stackoverflow.com/questions/321494/calculate-when-a-cron-job-will-be-executed-then-next-time –

    +0

    나는 몇 시간 만에 다시 쓰겠습니다 (지금 회의가 있습니다.)). 고맙습니다. – zozo

    답변

    0

    는 1 분마다 순환 될 것으로 보인다. 그것은 아마 구성 가능한 값입니다, 그래서 crontab이 몇분의 몇분이 시작될 때까지 시작하지 않았다고 생각하면 이유가있을 수 있습니다.

    귀하의 프로세스는 다른 프로세스가 이미 대부분을 사용하는 경우 crontab 항목을 시작 작은 지연/시스템의 모든 자원이있을 수 있습니다 00. 59까지의 시간 (초) 값으로 이동 한 후 시작해야합니다.

    그러나 다른 관점에서 볼 때, 특정 시간 값으로 crontab 항목을 만드는 경우 + 2-3 초를보고 시작할 시간을 알 수 있습니까?

    귀하의 시스템이 생성하는 crontab 항목의 샘플을 포함하도록 게시물을 수정하십시오 ('*'이 (가) 주요 관심사 임).


    게시물을 다시 읽는 중, 나는 crontab 항목을 프로그래밍 방식으로 생성하지 않는 것을 확인했습니다. 그것에 신경 쓰지 마라.

    프로세스가 몇 시간 동안 실행되는 경우 왜 즉시 처리해야합니까? 처음 30 초 이내에 충돌이 발생하면 최대 1 분 동안 기다리지 않아도됩니다.

    마지막으로, 셸 환경에서 99.99999 %의 시간이 있습니다.이 프로세스는 처음부터 프로세스의 출력을 캡처하는 방법입니다. 기다릴 필요가 없다는 아이디어는 더 많은 설명이 필요합니다. 이 프로그램이 원격 컴퓨터에서 실행되고 있다는 점을 포함하는 작업이 있습니까? 원격 프로그램은 출력을 캡처 한 다음 별도의 하위/보조 프로세스로 출력합니다.

    이 정보가 도움이되기를 바랍니다.