From 9d196b4fa433eefdd53e02f3f180da2dc8d84d09 Mon Sep 17 00:00:00 2001 From: Torsten Merz <torsten.merz@csiro.au> Date: Wed, 9 Mar 2022 00:43:04 +1000 Subject: [PATCH] changed method to kill processes and their descendants --- smi/src/smi_def.h | 2 +- smi/src/taskdisp_nrt.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/smi/src/smi_def.h b/smi/src/smi_def.h index 1989e79..2eb7a75 100644 --- a/smi/src/smi_def.h +++ b/smi/src/smi_def.h @@ -2,7 +2,7 @@ #define SMIDEF_H #define VERSION_MAJOR 2 -#define VERSION_MINOR 20 +#define VERSION_MINOR 21 #define ATOMIC_UNLOCKED -1 #define ATOMIC_UNLOCKED0 0 diff --git a/smi/src/taskdisp_nrt.c b/smi/src/taskdisp_nrt.c index 09f476f..bd6ab02 100644 --- a/smi/src/taskdisp_nrt.c +++ b/smi/src/taskdisp_nrt.c @@ -103,12 +103,18 @@ void killProcess_(processType nrtProcessID) ) { printf("[killProcess_] killing process %lld nrtProcessID=%d\n", (long long int)shm->pid[nrtProcessID],nrtProcessID); +/* // kill child procresses sprintf(str,"pkill -9 -P %lld\n",(long long int)shm->pid[nrtProcessID]); ret=system(str); // kill parent process sprintf(str,"kill -9 %lld\n",(long long int)shm->pid[nrtProcessID]); ret=system(str); +*/ +// kill process and all its descendants + sprintf(str,"kill -9 `pstree -l -p %lld | grep -oP '(?<=\\()[0-9]+(?=\\))'`", + (long long int)shm->pid[nrtProcessID]); + ret=system(str); ret=ret; // eliminate compiler warning usleep(STD_SLEEP); // possibly longer sleep time required for (i=0;i<shm->numberOfTaskStates;i++) { -- GitLab