사용자가 브라우저에서 서버로 데이터를 전송할 때 프로세스를 시작하기 위해 exec 또는 proc_open을 사용하는 PHP 스크립트 인 exec를 사용하는 SSI 스크립트가 있다고 가정 해보십시오. 서버가 요청 처리를 완료하고 응답을 서버로 다시 보낼 때이 생성 된 프로세스가 종료됨을 수정합니까? SSI 나 PHP 중 어떤 것을 사용하든,이 시점에서 생성 된 프로세스가 종료됩니다. 맞습니까?SSI/PHP exec 명령은 응답이 반송 될 때 종료됩니다. 맞습니까?
따라서 '프로세스를 계속 유지'할 수있는 방법이 없으므로 후속 요청에서 동일한 프로세스와 상호 작용하려면 데몬 프로그램을 작성해야합니다.
우리가 필요하기 echo "Blah"
을 발견
#!/bin/bash
/path/to/some/process </dev/zero> "$1" &
echo "Blah"
같은 쉘 스크립트 (wrapper.sh) 만들기 :
당신이하는 말은 확실하지 않습니다. PHP에서 wrapper.sh를 호출하면 ID가 '3'인 프로세스가 생성됩니다. 이 프로세스는 매우 강력한 계산기처럼 변수를 설정하고 계산을 수행 할 수있는 일종의 환경이라고 가정 해보십시오. 그래서 "var answer = resultFromHugeComputation()"과 같은 변수를 설정했는데 클라이언트에게 'answer'변수를 다시 보냈습니다. 이제 클라이언트가 서버에 새로운 요청을합니다. ID 3을 가진이 프로세스는 여전히 –
첫 번째 : 예, 프로세스가 여전히 동일한 프로세스 ID로 실행됩니다 ** ** 분명히 끝나지 않는 방법으로 만 작동하는 경우입니다. : 상호 작용하려면 인프라가 많이 필요합니다. 앞서 언급 한 출력 파일 방법은 관련 요청에만 적합합니다. 나중에 프로세스를 시작한 이전 결과를 가져 오는 것입니다. 반복되는 상호 작용을 원한다면 데몬은 소켓과 같은 것입니다. –