From 0ae64dccb4aac30c33f9b082dfadf7992a4e6d0a Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 10 Apr 2018 16:28:02 +0200 Subject: [PATCH] Allow specifying our PID when sending signal to process tree This allows to send signals to processes which weren't started as direct children of the IDE process. Used in Rider. --- .../intellij/execution/process/UnixProcessManager.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/platform/util/src/com/intellij/execution/process/UnixProcessManager.java b/platform/util/src/com/intellij/execution/process/UnixProcessManager.java index 0507c03ebe93..e90f4b2611a6 100644 --- a/platform/util/src/com/intellij/execution/process/UnixProcessManager.java +++ b/platform/util/src/com/intellij/execution/process/UnixProcessManager.java @@ -115,7 +115,11 @@ public class UnixProcessManager { public static boolean sendSignalToProcessTree(int processId, int signal) { checkCLib(); - final int our_pid = C_LIB.getpid(); + final int ourPid = C_LIB.getpid(); + return sendSignalToProcessTree(processId, signal, ourPid); + } + + public static boolean sendSignalToProcessTree(int processId, int signal, int ourPid) { if (LOG.isDebugEnabled()) { LOG.debug("Sending signal " + signal + " to process tree with root PID " + processId); } @@ -124,7 +128,7 @@ public class UnixProcessManager { final ProcessInfo processInfo = new ProcessInfo(); final List childrenPids = new ArrayList(); - findChildProcesses(our_pid, processId, foundPid, processInfo, childrenPids); + findChildProcesses(ourPid, processId, foundPid, processInfo, childrenPids); // result is true if signal was sent to at least one process final boolean result;