LinuxDevice: Fix kill command on remote host

Kill all the processes in the process group.
For more info see:
https://man7.org/linux/man-pages/man1/kill.1.html
https://www.baeldung.com/linux/kill-members-process-group

Fixes: QTCREATORBUG-28072
Change-Id: Id574774d16bc7d3386c6c5f80fb1d305065ec3dc
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Jarek Kobus
2022-08-17 14:40:26 +02:00
parent 60a045299d
commit 41cefa6a2b
2 changed files with 3 additions and 3 deletions

View File

@@ -512,9 +512,9 @@ void LinuxProcessInterface::sendControlSignal(ControlSignal controlSignal)
QTC_ASSERT(controlSignal != ControlSignal::KickOff, return); QTC_ASSERT(controlSignal != ControlSignal::KickOff, return);
const qint64 pid = processId(); const qint64 pid = processId();
QTC_ASSERT(pid, return); // TODO: try sending a signal based on process name QTC_ASSERT(pid, return); // TODO: try sending a signal based on process name
const QString args = QString::fromLatin1("-%1 %2") const QString args = QString::fromLatin1("-%1 -%2")
.arg(controlSignalToInt(controlSignal)).arg(pid); .arg(controlSignalToInt(controlSignal)).arg(pid);
CommandLine command = { "kill", args, CommandLine::Raw }; const CommandLine command = { "kill", args, CommandLine::Raw };
// Note: This blocking call takes up to 2 ms for local remote. // Note: This blocking call takes up to 2 ms for local remote.
runInShell(command); runInShell(command);
} }

View File

@@ -43,7 +43,7 @@ RemoteLinuxSignalOperation::~RemoteLinuxSignalOperation() = default;
static QString signalProcessGroupByPidCommandLine(qint64 pid, int signal) static QString signalProcessGroupByPidCommandLine(qint64 pid, int signal)
{ {
return QString::fromLatin1("kill -%1 %2").arg(signal).arg(pid); return QString::fromLatin1("kill -%1 -%2").arg(signal).arg(pid);
} }
void RemoteLinuxSignalOperation::run(const QString &command) void RemoteLinuxSignalOperation::run(const QString &command)