2014-02-06 8 views
0

서버의 요점은 이미 작동하고있는 몇 가지 다른 것들과 함께 웹캠을 선택하여 스트리밍 할 수 있다는 것입니다. node.js 서버에서 연속 프로세스 (mjpg-streamer)를 실행하려고합니다. node.js 서버는 socket.io를 통해 서버에 명령을 보내기 위해 javascript 함수에 바인드 된 select 드롭 다운이있는 HTML 페이지를 처리합니다. 드롭 다운을 통해 video0, video1 및 none을 선택할 수 있습니다. 그러나 서버를 실행하려고 할 때마다 특정 코드 블록이 도달 할 수 없거나 코드가 무한한 프로세스를 실행하지 못한 채로 모든 것을 말하는 것을 거부합니다. 서버를 잠그지 않고 어떻게 이것을 실행할 수 있습니까?Node.js에서 계속 프로세스를 실행하십시오.

child = exec("video0.sh", function (error, stdout, stderr) { 
sys.print('stdout: ' + stdout); 
sys.print('stderr: ' + stderr); 
if (error !== null) { 
    console.log('exec error: ' + error); 
} 

배쉬 스크립트 video0.sh은 다음과 같습니다 :

cd mjpg-streamer/mjpg-streamer ; 
export LD_LIBRARY_PATH=. ; 
./mjpg_streamer -o "output_http.so -w ./www -p 8080" -i "input_uvc.so -d /dev/video0"; 
+0

을에서 무한 루프를 설정할 수 있습니다 여기에 문제를 일으키는 코드는 거기에 닫는'))'을 그리워하지 않습니까? – ZenMaster

+0

이것은 분명 할 수 있지만 많은 사람들이 (나를 포함해서) 한 것입니다. sh 스크립트를 실행 파일로 설정 했습니까? 'chmod + x video0.sh'? – tsturzl

+0

오류를 제공 할 수 있습니까? – tsturzl

답변

1

당신이 순수 쉘 직접

#!/usr/bin/bash 

cd mjpg-streamer/mjpg-streamer ; 
export LD_LIBRARY_PATH=. ; 
while : 
do 
    ./mjpg_streamer -o "output_http.so -w ./www -p 8080" -i "input_uvc.so -d /dev/video0"; 
    sleep 5 
done 
0
child = exec("sh video0.sh", function (error, stdout, stderr) { 
    sys.print('stdout: ' + stdout); 
    sys.print('stderr: ' + stderr); 
    if (error !== null) { 
    console.log('exec error: ' + error); 
    } 
관련 문제