프로세스는 앰퍼샌드 없이는 작동하지만 앰퍼샌드에서는 작동하지 않습니다.

프로세스는 앰퍼샌드 없이는 작동하지만 앰퍼샌드에서는 작동하지 않습니다.

나는 데몬으로 실행하기 위해 작은 스크립트를 작성했고 유닉스에서 명령을 실행하면 모든 것이 괜찮은 것 같습니다.

php script.php

모든 것이 잘 작동하는 것 같습니다. 스크립트를 종료하고 다음 명령을 사용하면 de 스크립트가 백그라운드에서 실행되지 않습니다.

php script.php &

내가 뭘 잘못했나요? 서버 문제일 수도 있고 스크립트 문제일 수도 있습니다.

답변1

PHP가 출력을 작성하지 않는 것처럼 보이더라도 최소한 헤더 작성을 준비하고 있습니다. 이 동작은 php.ini 옵션을 사용하여 억제할 수 있습니다 -q.

php -q script.php >/dev/null 2>&1 &

당신이 가야 할 곳으로 데려다 주어야합니다.

PHP가 실제로 아무것도 출력하는지 확인하려면 다음을 시도하십시오.

php -q script.php >/tmp/script.log 2>&1 &

그런 다음 스크립트가 실행된 후에도 /tmp/script.log가 여전히 0바이트인지 확인하십시오.

답변2

이 PHP script.php > /dev/null 2>&1 &를 사용해 보세요.

관련 정보