簡體   English   中英

如何在node.js中殺死生成的進程

[英]How to kill spawned process in node.js

我有一個函數,需要在生成一個新的ffmpeg進程之前殺死它,但是我不知道如何做到這一點,因為如果我嘗試下面的代碼,我會理解為沒有定義ffmpeg:

var ffmpeg_started = false;
function start_ffmpeg(file) {
  if (ffmpeg_started)
    ffmpeg.kill();
  var command =  [
               '-i', file,
               '-f', 'mpegts',
               '-codec:v', 'mpeg1video',
               'http://server.com/'
                ];
  }
  const ffmpeg = spawn('ffmpeg', command);  
  ffmpeg_started = true;
}

一個簡單/簡單的解決方案是將ffmpeg聲明移動到父作用域中。 然后你可以取消布爾標志,只需檢查ffmpeg的值來判斷它是否仍在運行。 例如:

var ffmpeg;
function start_ffmpeg(file) {
  if (ffmpeg)
    ffmpeg.kill();
  ffmpeg = spawn('ffmpeg', ...);
}

如果您需要比這更復雜的東西,您可以考慮使用隊列或類似方法來更優雅地處理ffmpeg的調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM