![백그라운드에서 PHP를 실행하는 모범 사례는 무엇입니까?](https://linux55.com/image/35060/%EB%B0%B1%EA%B7%B8%EB%9D%BC%EC%9A%B4%EB%93%9C%EC%97%90%EC%84%9C%20PHP%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20%EB%AA%A8%EB%B2%94%20%EC%82%AC%EB%A1%80%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
명령줄에서 다음 명령을 실행하면 fg 명령을 실행할 때까지 일시 중지됩니다.
/usr/bin/php -r 'phpinfo();' &
PHP 코드가 shebang에 포함되어 있는지 여부에 관계없이 #!/usr/bin/php
.
저는 CentOS와 bash 쉘을 실행하고 있습니다.
답변1
백그라운드에서 작업을 실행하기 위한 PHP 전용 메서드는 없습니다. 널리 사용되는 방법은 다음과 같습니다.
하나를 사용하십시오
screen
. 설치한screen
다음(아직 설치되지 않은 경우) 화면에서 PHP 스크립트를 실행합니다.screen
언제든지 컴퓨터 연결을 해제하고 로그오프할 수 있으며 스크립트는 계속 실행됩니다.여기사용 방법에 대한 수백 가지 정보가 온라인으로 제공됩니다screen
.사용
nohup
. 사용법은 다음과 같습니다:
nohup <yourPHPcommand> &
이렇게 하면 로그아웃할 때 nohup
스크립트가 HANGUP 신호에 "아니요"라고 응답하게 되므로 로그아웃한 후에도 PHP 스크립트는 계속 실행됩니다. 유일한 문제는 해당 작업/프로세스를 전경으로 가져오고 출력을 볼 수 없다는 것입니다(중요한 경우). 출력을 파일로 리디렉션하고 해당 파일에서 인쇄된 내용을 확인할 수 있습니다.
위의 두 가지 중 를 사용하는 것이 좋습니다 screen
. 포그라운드에서 실행할 때와 마찬가지로 항상 화면에 연결하여 프로세스를 제어할 수 있습니다.
추신: - 끝에 "&"가 있는 스크립트를 실행하면 &
백그라운드로 들어가지만 터미널에서 로그아웃하면 스크립트/프로세스가 종료됩니다.