다양한 PHP 애플리케이션에서는 기본 요청의 성능을 방해하지 않고 셸 스크립트를 비동기적으로 실행해야 할 필요성이 발생합니다. 당면한 작업에는 SOAP 호출을 수행하는 셸 스크립트를 호출하는 작업이 포함되며 이는 시간이 많이 걸릴 수 있습니다. 그러나 PHP 스크립트는 쉘 프로세스가 완료될 때까지 기다리면 안 됩니다.
탐색적 노력
처음에는 exec() 및 shell_exec()와 같은 함수를 고려했습니다. 그러나 그 중 어느 것도 원하는 비차단 동작을 제공하지 않습니다.
백그라운드를 사용한 비동기 호출
이 문제에 대한 해결책은 '& ' 연산자. exec 명령에 '&'를 추가하면 셸 스크립트가 백그라운드 프로세스로 실행되어 PHP 요청이 방해 없이 계속 실행될 수 있습니다.
출력 및 오류 스트림 리디렉션
특정 시나리오에서는 쉘 스크립트에서 표준 출력과 오류 스트림을 모두 억제하는 것이 바람직할 수 있습니다. 다음 구문을 사용하여 /dev/null로 리디렉션하면 됩니다.
리디렉션에 대한 대안
또는 출력 및 오류 스트림을 다음과 같이 할 수 있습니다. '>'를 사용하여 단일 작업으로 리디렉션됩니다. 연산자 뒤에 두 개의 앰퍼샌드(&)가 옵니다.
이 접근 방식은 스트림 리디렉션에 대한 간결하고 읽기 쉬운 솔루션을 제공합니다.
추가 참고 사항
'&' 연산자의 동작은 운영 체제와 PHP 버전에 따라 다를 수 있다는 점에 유의하는 것이 중요합니다. 올바른 작동을 위해서는 특정 대상 환경에서 솔루션을 테스트하는 것이 좋습니다.
위 내용은 기본 요청을 차단하지 않고 PHP에서 쉘 스크립트를 비동기적으로 실행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!