> 백엔드 개발 > PHP 튜토리얼 > 차단하지 않고 PHP에서 쉘 명령을 동시에 실행하는 방법은 무엇입니까?

차단하지 않고 PHP에서 쉘 명령을 동시에 실행하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-02 14:19:12
원래의
453명이 탐색했습니다.

How to Execute Shell Commands Concurrently in PHP without Blocking?

차단 없는 동시 셸 명령 실행

많은 애플리케이션은 특히 사용자 상호 작용을 처리할 때 백그라운드에서 계산 집약적인 작업을 실행해야 합니다. PHP에서는 이러한 목적으로 shell_exec 함수가 일반적으로 사용됩니다. 그러나 작업을 완료하는 데 상당한 시간이 걸리면 PHP 스크립트의 실행 흐름을 차단하므로 문제가 될 수 있습니다. 쉘 명령이 완료될 때까지 기다리지 않고 실행할 수 있는 방법이 있습니까?

리디렉션을 통한 동시 실행

예, 명령을 기다리지 않고 동시에 쉘 명령을 실행할 수 있습니다. PHP 스크립트를 차단합니다. 이는 명령의 출력 및 오류 스트림을 null로 리디렉션하여 달성할 수 있습니다. 이를 수행하는 방법은 다음과 같습니다.

shell_exec('php measurePerformance.php 47 844 [email protected] > /dev/null 2> /dev/null &');
로그인 후 복사

명령 끝에 있는 & 기호는 쉘이 백그라운드에서 명령을 실행하도록 지시합니다. > /dev/null 및 2> /dev/null 리디렉션은 표준 출력 및 표준 오류 스트림을 삭제하여 명령의 모든 출력을 효과적으로 침묵시킵니다.

동시 실행의 이점

명령을 동시에 실행하면 여러 가지 이점이 있습니다. :

  • 장기 실행으로 인해 PHP 스크립트가 차단되는 것을 방지합니다. 작업.
  • 사용자 상호 작용 및 기타 작업이 중단 없이 계속되도록 허용합니다.
  • 장시간 실행으로 인해 발생할 수 있는 시간 초과 또는 메모리 고갈 문제를 방지합니다.

참고: stdout 및 stderr 스트림을 모두 /dev/null로 리디렉션하면 액세스할 수 없게 됩니다. 명령의 출력 또는 오류 메시지. 이를 캡처해야 하는 경우 파이프나 프로세스 모니터링과 같은 대체 방법을 사용하세요.

위 내용은 차단하지 않고 PHP에서 쉘 명령을 동시에 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿