服务器的目的是能够选择网络摄像头并将其流式传输,以及我已经使用的其他一些东西。我试图从node.js服务器中运行一个连续的过程(mjpg-streamer)。 node.js服务器正在处理一个HTML页面,该页面具有绑定到javascript函数的选择下拉列表,以通过socket.io向服务器发送命令。下拉菜单让我选择video0,video1和none。但是,每当我尝试运行服务器时,它都拒绝在特定代码块无法访问之后说出所有内容,或者代码在运行无限进程时陷入困境。如何在不锁定服务器的情况下执行此操作?以下是导致问题的代码:
child = exec("video0.sh", function (error, stdout, stderr) {
sys.print('stdout: ' + stdout);
sys.print('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
bash脚本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 :(得分:1)
你可以直接在纯shell中设置无限循环
#!/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
答案 1 :(得分: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);
}