diff options
Diffstat (limited to 'src/tools/controller/controller.cpp')
| -rw-r--r-- | src/tools/controller/controller.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/tools/controller/controller.cpp b/src/tools/controller/controller.cpp index a52631ac..1b420fb0 100644 --- a/src/tools/controller/controller.cpp +++ b/src/tools/controller/controller.cpp @@ -395,7 +395,7 @@ int main(int argc, char *argv[]) clp.positionalArguments().at(2), stdRedirections, restart, - args == 3 ? clp.positionalArguments().at(2) : QString())); + args == 4 ? clp.positionalArguments().at(3) : QString())); break; } case StopAllApplications: @@ -579,7 +579,11 @@ void startOrDebugApplication(const QString &debugWrapper, const QString &appId, // pass 0: normal stop / pass 1: force kill for (int pass = 0; !isStopped && (pass < 2); ++pass) { - stopApplication(appId, pass == 0 ? false : true); + + auto stopReply = dbus.manager()->stopApplication(appId, pass > 0 /*forceKill*/); + stopReply.waitForFinished(); + if (stopReply.isError()) + throw Exception(Error::IO, "failed to call stopApplication via DBus: %1").arg(stopReply.error().message()); static const int checksPerSecond = 10; |
