forked from qt-creator/qt-creator
Introduce the concept of a "device process".
Provide a QProcess-like abstraction that can be used
to implement processes running locally or on a remote
device. Objects of a concrete class implementing the functionality
are created by IDevice objects.
Current implementations are:
- Local execution (QProcess-based), provided via the DesktopDevice.
- Remote execution via SSH.
- A specialized case of the former for remote Linux systems (provided by
LinuxDevice).
The latter is already being used in a number of places. As a result, lots of
code dealing with details such as setting the remote environment could be
moved to a central location. These things are no longer the concern of whoever
is wishing to run a remote process.
Change-Id: I919260ee6e77a020ca47226a4a534e7b8398106f
Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
@@ -42,13 +42,24 @@ using namespace Qnx::Internal;
|
||||
|
||||
class QnxDeviceProcessSupport : public RemoteLinux::LinuxDeviceProcessSupport
|
||||
{
|
||||
QString killProcessByNameCommandLine(const QString &filePath) const
|
||||
static QString signalProcessByNameCommandLine(const QString &filePath, int sig)
|
||||
{
|
||||
QString executable = filePath;
|
||||
return QString::fromLatin1("for PID in $(ps -f -o pid,comm | grep %1 | awk '/%1/ {print $1}'); "
|
||||
"do "
|
||||
"kill $PID; sleep 1; kill -9 $PID; "
|
||||
"done").arg(executable.replace(QLatin1String("/"), QLatin1String("\\/")));
|
||||
"kill -%2 $PID; "
|
||||
"done").arg(executable.replace(QLatin1String("/"), QLatin1String("\\/"))).arg(sig);
|
||||
}
|
||||
|
||||
QString killProcessByNameCommandLine(const QString &filePath) const
|
||||
{
|
||||
return QString::fromLatin1("%1; %2").arg(signalProcessByNameCommandLine(filePath, 15),
|
||||
signalProcessByNameCommandLine(filePath, 9));
|
||||
}
|
||||
|
||||
QString interruptProcessByNameCommandLine(const QString &filePath) const
|
||||
{
|
||||
return signalProcessByNameCommandLine(filePath, 2);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user