>백엔드 개발 >PHP 튜토리얼 >스크립트를 차단하지 않고 PHP 명령을 비동기적으로 실행하려면 어떻게 해야 합니까?

스크립트를 차단하지 않고 PHP 명령을 비동기적으로 실행하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-05 11:58:09302검색

How Can I Execute PHP Commands Asynchronously Without Blocking the Script?

결과를 기다리지 않고 PHP 명령 실행

PHP에서 exec()를 사용하여 명령을 실행하면 일반적으로 명령이 완료될 때까지 스크립트가 대기하게 됩니다. . 그러나 명령을 비동기적으로 실행하여 결과를 기다리지 않고 스크립트를 진행할 수 있는 방법이 있습니다.

문서에서는 표준 출력과 표준 오류를 모두 /dev/null로 리디렉션한 다음 백그라운드로 실행할 수 있다고 설명합니다. 이를 달성하기 위한 명령:

> /dev/null 2>&1 &

이것은 명령이 PHP를 차단하는 출력을 생성하지 않도록 보장합니다. script.

또는 완전히 독립적인 프로세스를 시작하려면 다음 명령을 사용할 수 있습니다.

exec('bash -c "exec nohup setsid your_command > /dev/null 2>&1 &"');

이 명령은 지정된 명령을 실행하는 새로운 Bash 셸을 생성합니다. 프로세스는 현재 Apache 스레드에서 분리되어 페이지가 종료되더라도 계속 실행됩니다.

위 내용은 스크립트를 차단하지 않고 PHP 명령을 비동기적으로 실행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.