2011-03-10 6 views
0

exit(0)에도 불구하고 명백한 문제가 없어도 PHP 종료 스크립트 11을 완강히 반환하는 PHP CLI 스크립트 (http://codepad.org/w6iyLLdv)가 있습니다.종료 상태 11 : 의미는 무엇입니까?

Advanced Bash-Scripting Guide: Appendix E. Exit Codes With Special Meanings은 11에 대해서는 특별한 내용이 없으며 Google은 일반적으로 특별히 PHP와 관련이없는 것으로 확인합니다 (단, Are there any standard exit status codes in Linux? 제외).

물론 내 호출 코드에서 0 또는 11의 종료 상태를 확인할 수 있지만 더러운 것입니다.

+0

http://stackoverflow.com/questions/5255218/why-is-it-returning-exit-status-11 – Mikhail

+2

중복 된 http://stackoverflow.com/questions/5255218/why-is-it-returning -exit-status-11 - 죄송합니다. 통신이 원활하지 않습니다! (Mikhail이 저를 때렸습니다.) – Grault

답변

1

드디어 아파치하는 error.log를 확인하기 위해 생각하고, (11 개)의 상태는이 동행했다 : PHP 경고 분명히 http://www.somacon.com/p520.php를 I 실수로 여분의 파일을 < < extension = "imagick.so">> php.ini에 삽입하십시오. 제거하면 CLI 스크립트가 상태 0을 반환 할 수있었습니다.

참고 : 게시 한 후 ~/.gnome2 디렉토리 및 11 상태를 생성 할 권한이 없다는 imagick의 PHP 경고를 받기 시작했습니다. 따라서이 수정 사항을 적용한 후 0 상태가 보일 수도 있습니다.

0

종료 코드 11 또는 신호 11로 종료합니까? 후자라면 SIGSEGV로 충돌합니다.

그렇지 않으면 어떤 행을 종료하는지 파악할 수 있는지 확인하십시오. 예를 들어, 10 행 다음에 exit(0);을 삽입하고 11 대신 0으로 끝나면 종료 (0)를 약간 이동하십시오. 그것은 적어도 우리에게 더 많은 것을 제공 할 것입니다. 내가 여기 해결책을 발견 모듈 'imagick가'이미 라인 0

에 알 수없는로드 :

+0

단순히 'exec'의 세 번째 인수에있는 숫자입니다. 나의 이해는 그 것이 종료 상태라는 것이다. 귀하의 충고를 사용하여 코드에서 출구 (0)까지 종료되지 않았 음을 확인할 수있었습니다. 해당 if-block 앞에 exit를 놓으면 11 상태가 방지됩니다. – Grault

+0

수정 : 분명히 나는 ​​디버깅에 실수를했다. flattenImages에 대한 호출은 exit (0)이 그 앞에 오는 경우 11 상태가 방지되는 첫 번째 작업입니다 ... 그래서 Image Magick 문제입니다. – Grault

관련 문제