From f9ad8a4c20554bafaa5961ff44af0cec3f65fdb0 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Thu, 7 Jun 2018 20:09:50 +0200 Subject: try kill --- app/relay/remote.js | 2 +- app/relay/runner.js | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) (limited to 'app/relay') diff --git a/app/relay/remote.js b/app/relay/remote.js index 935298a..c958eab 100644 --- a/app/relay/remote.js +++ b/app/relay/remote.js @@ -47,7 +47,7 @@ remote.on('task', (data) => { response = runner.run_task(data.task, data.preempt, data.watch) break case 'stop': - response = runner.stop_task(data.task) + response = runner.stop_task(data.task, data.sigkill) break case 'add': queue.add_task(data.task) diff --git a/app/relay/runner.js b/app/relay/runner.js index 3ad73a2..1c98977 100644 --- a/app/relay/runner.js +++ b/app/relay/runner.js @@ -339,23 +339,27 @@ export function run_next_task(){ } } -export function stop_task(task){ +export function stop_task(task, sigkill){ if (!task) return if (task === 'cpu' || state.current_cpu_task.task.uuid === task.uuid) { - terminate(state.current_cpu_task) + terminate(state.current_cpu_task, sigkill) return { status: 'ok' } } else if (task === 'gpu' || state.current_gpu_task.task.uuid === task.uuid) { - terminate(state.current_gpu_task) + terminate(state.current_gpu_task, sigkill) return { status: 'ok' } } return { error: 'no such task' } } -export function terminate(processor){ +export function terminate(processor, sigkill=false){ if (!processor || !processor.subprocess) { return } console.log('kill pid', processor.subprocess.pid) processor.task.cancelled = true - kill(processor.subprocess.pid) + if (sigkill) { + kill(processor.subprocess.pid, 'SIGKILL') + } else { + kill(processor.subprocess.pid) + } } \ No newline at end of file -- cgit v1.2.3-70-g09d2