2014-02-15 6 views
0

this Stack Overflow question에서 백그라운드에서 데몬으로 실행중인 프로세스를 popen으로 유지할 수 있다는 것을 깨달았습니다.PHP에서 Node.js/Socket.IO와 함께 popen을 사용하려면 어떻게해야합니까?

하지만 시도 할 때이 :

$daemon = popen('node nodeServer.js', 'r'); 
echo "Server started.\n"; 

그것은, 휴식과 나에게 Node.js를 관련 오류를 많이 줄 것이다.

왜 이런가요? 명령 프롬프트에서 node nodeServer.js을 시도하면 제대로 작동합니다.

여기에 내가 가진 오류는 다음과 같습니다

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: write EPIPE 
    at errnoException (net.js:901:11) 
    at Object.afterWrite (net.js:718:19) 

감사합니다.

+0

오류가 무엇인지 알려 주시면 도움이 될 것입니다. PHP가 여는 쉘의 경로에있는 노드입니까? PHP는 실행 파일을 실행할 권한이 있습니까? 그 .js 파일을 읽을 수있는 권한이 있습니까? 기본적으로 유용한 세부 정보는 제공하지 않았으며 그렇게 할 때까지 모호한 추측으로는 해결할 수 없습니다. –

+0

@MarcB 내 질문을 업데이트했습니다.보세요. – think123

답변

0

노드 서버를 활성 상태로 유지하려는 경우 GNU Screen을 사용하여 노드 서버 프로세스를 계속 실행할 수 있습니다. (http://www.gnu.org/software/screen/)

SSH 터미널을 닫고 다른 컴퓨터/위치에서 열 수 있으며 세션에 다시 연결할 수 있습니다. 모두 귀하의 서버를 중지하지 않고.

관련 문제