From 925a2ee4c89bd4064d8f8d725e21bae745911557 Mon Sep 17 00:00:00 2001 From: Marius Tolzmann Date: Fri, 30 Oct 2015 15:01:37 +0100 Subject: [PATCH] mxqd: killall_over_memory: Send SIGKILL after sending SIGTERM --- mxqd.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/mxqd.c b/mxqd.c index 03025571..86a1b96f 100644 --- a/mxqd.c +++ b/mxqd.c @@ -1660,9 +1660,16 @@ int killall_over_memory(struct mxq_server *server) for (jlist = glist->jobs; jlist; jlist = jlist->next) { unsigned long long int memory; + int signal; job = &jlist->job; + /* sigterm has already been send last round ? */ + if (jlist->max_sum_rss/1024 > group->job_memory) + signal = SIGKILL; + else + signal = SIGTERM; + pinfo = mx_proc_tree_proc_info(ptree, job->host_pid); if (!pinfo) { mx_log_warning("killall_over_memory(): Can't find process with pid %llu in process tree", @@ -1678,16 +1685,17 @@ int killall_over_memory(struct mxq_server *server) if (jlist->max_sum_rss/1024 <= group->job_memory) continue; - mx_log_info("killall_over_memory(): used(%lluMiB) > requested(%lluMiB): Sending signal=TERM to job=%s(%d):%lu:%lu pid=%d", + mx_log_info("killall_over_memory(): used(%lluMiB) > requested(%lluMiB): Sending signal=%d to job=%s(%d):%lu:%lu pid=%d", jlist->max_sum_rss/1024, group->job_memory, + signal, group->user_name, group->user_uid, group->group_id, job->job_id, job->host_pid); - kill(job->host_pid, SIGTERM); + kill(job->host_pid, signal); } } }