From 44dc3d9c4608c0c7d8b716fc839c558307d67f07 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Thu, 14 Aug 2003 19:30:40 +0000
Subject: [PATCH] Kill batch job script as part of the KILL_JOB request
 processing. It was formerly just killing the job step processes.

---
 src/slurmd/req.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/slurmd/req.c b/src/slurmd/req.c
index 82b74b4267d..d590e33e847 100644
--- a/src/slurmd/req.c
+++ b/src/slurmd/req.c
@@ -674,11 +674,21 @@ _kill_all_active_steps(uint32_t jobid, int sig)
 	int step_cnt       = 0;  
 
 	while ((s = list_next(i))) {
-		if ((s->jobid == jobid) && (s->stepid != NO_VAL)) {
-			debug2("sending signal %d to job %d.%d (pg:%d)", 
+		if (s->jobid != jobid)		/* wrong job */
+			continue;
+		if ((s->stepid == NO_VAL) &&	/* batch job script */
+		    ((sig != SIGKILL) || (s->sid <= 0)))
+			continue;
+		step_cnt++;
+		if (s->stepid == NO_VAL) {
+			debug2("sending signal %d to job %u (pg:%d)", 
+			       sig, jobid, s->sid);
+			if (kill(-s->sid, sig) < 0)
+				error("kill jid %d sid %d: %m", s->jobid, s->sid);
+		} else {
+			debug2("sending signal %d to job %u.%u (pg:%d)", 
 			       sig, jobid, s->stepid, s->sid);
 			shm_signal_step(jobid, s->stepid, sig); 
-			step_cnt++;
 		}
 	}
 	list_destroy(steps);
-- 
GitLab