forked from qt-creator/qt-creator
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:
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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)
|
||||||
|
Reference in New Issue
Block a user