diff --git a/libs/monitor.js b/libs/monitor.js index 2eb398c0..1cd40391 100644 --- a/libs/monitor.js +++ b/libs/monitor.js @@ -4,6 +4,7 @@ var spawn = require('child_process').spawn; var exec = require('child_process').exec; var Mp4Frag = require('mp4frag'); var onvif = require('node-onvif'); +var treekill = require('tree-kill'); var request = require('request'); var connectionTester = require('connection-tester') var SoundDetection = require('shinobi-sound-detection') @@ -34,7 +35,6 @@ module.exports = function(s,config,lang){ if(!s.group[e.ke].activeMonitors[e.mid].isStarted){s.group[e.ke].activeMonitors[e.mid].isStarted = false}; if(s.group[e.ke].activeMonitors[e.mid].delete){clearTimeout(s.group[e.ke].activeMonitors[e.mid].delete)} if(!s.group[e.ke].rawMonitorConfigurations){s.group[e.ke].rawMonitorConfigurations={}} - if(!s.group[e.ke].activeMonitors[e.mid].detector_motion_count){s.group[e.ke].activeMonitors[e.mid].detector_motion_count = []} s.onMonitorInitExtensions.forEach(function(extender){ extender(e) }) @@ -165,13 +165,11 @@ module.exports = function(s,config,lang){ if(s.isWin){ spawn("taskkill", ["/pid", pid, '/t']) }else{ - snapProcess.kill('SIGTERM') + process.kill(-pid, 'SIGTERM') } setTimeout(function(){ if(s.isWin === false){ - exec('kill -9 ' + pid,function(){ - - }) + treekill(pid) }else{ snapProcess.kill() } diff --git a/package.json b/package.json index 65666e88..9c8e5fac 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,8 @@ "socket.io": "^2.2.0", "socket.io-client": "^2.2.0", "webdav-fs": "^1.11.0", - "express-fileupload": "^1.1.6-alpha.6" + "express-fileupload": "^1.1.6-alpha.6", + "tree-kill":"1.2.2" }, "devDependencies": {} }