차근차근/PHP

popen()과 exec() : 명령 실행

예쁜꽃이피었으면 2014. 9. 5. 10:57

http://www.mjstory.com/bbs/view.php?id=study&page=10&sn1=&divpage=1&sn=.&ss=off&sc=off&select_arrange=headnum&desc=asc&no=4





exec()는 OS 프로그램 실행을 위한 함수죠. 
exec()로 어떤 프로그램을 실행시키면 어떤 output도 보여지지 않습니다. 
단지 그 프로그램이 실행된 마지막 라인이 리턴되죠. 
만약 전체 결과를 받고 싶으면 passthru()를 이용해야 합니다. 

exec()는 PHP가 실행될 때 exec()의 결과가 나올때까지 기다립니다. 
만약 exec()로 실행시킬 프로그램이 1분을 돌아야 한다면 
이것을 실행한 PHP파일도 그만큼 기다려야 합니다. 
만약, 실행중에 PHP파일이 죽는다면 실행되던 프로그램도 죽겠죠. 
1) PHP시작 
2) exec() 시작 
3) exec() 진행..... PHP기다림... 
4) exec() 끝 
5) PHP끝 

반대로 실행중인 PHP파일이 죽어도 프로그램은 계속 실행되도록 할려면 
popen()을 사용해야 합니다. 
popen()을 사용하면 특정 프로그램을 실행만 시켜두고 PHP는 계속 진행이 되죠. 
프로그램이 끝날때까지 기다리지 않는단 말입니다. 
1) PHP시작 
2) exec()시작 
3) PHP계속 진행... 
4) PHP 끝 
......exec()는 어떤 순간에 끝. 


반응형

'차근차근 > PHP' 카테고리의 다른 글

[PHP] php exec() 함수 사용시 에러 출력  (0) 2014.09.05
popen PHP 명령어 사용 질문  (0) 2014.09.05
[PHP] php.ini의 위치  (0) 2014.09.04
php.ini 설정하기  (0) 2014.09.04
PHP - 쉘 스크립트로 활용 하기  (0) 2014.09.04