From d517610b92d8f6905aa42a2ee63703bb29c96062 Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Mon, 20 Jun 2005 19:49:32 +0000 Subject: [PATCH] Add logic to send SIGMIRGRATE and SIGSOUND to top process only, not entire process group. Used to initiate job checkpoint. --- src/slurmd/req.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/slurmd/req.c b/src/slurmd/req.c index a6ab96dac1f..f603b658a5d 100644 --- a/src/slurmd/req.c +++ b/src/slurmd/req.c @@ -1,6 +1,6 @@ /*****************************************************************************\ - * src/slurmd/req.c - slurmd request handling - * $Id$ + * src/slurmd/req.c - slurmd request handling + * $Id$ ***************************************************************************** * Copyright (C) 2002 The Regents of the University of California. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). @@ -762,6 +762,19 @@ _rpc_kill_tasks(slurm_msg_t *msg, slurm_addr *cli_addr) if (slurm_signal_container(step->cont_id, req->signal) < 0) rc = errno; +/* SIGMIGRATE and SIGSOUND are used to initiate job checkpoint on AIX. + * These signals are not sent to the entire process group, but just a + * single process, namely the PMD. */ +#ifdef SIGMIGRATE +#ifdef SIGSOUND + } else if ((req->signal == SIGMIGRATE) || + (req->signal == SIGSOUND)) { + if (step->task_list + && (step->task_list->pid > (pid_t) 0) + && (kill(step->task_list->pid, req->signal) < 0)) + rc = errno; +#endif +#endif } else { if (step->task_list && (step->task_list->pid > (pid_t) 0) -- GitLab