diff --git a/Patronum/src/PController.cpp b/Patronum/src/PController.cpp
index 7afd865..a8493c7 100644
--- a/Patronum/src/PController.cpp
+++ b/Patronum/src/PController.cpp
@@ -98,6 +98,8 @@ bool Controller::sendStop() {
         return false;
     }
 
+    _disableFinished = true;
+
     return d_ptr->stop();
 }
 
@@ -155,7 +157,8 @@ void Controller::handleResponce(const QVariantMap &responce) {
 }
 
 void Controller::finished() {
-    QCoreApplication::exit(0);
+    if (!_disableFinished)
+        QCoreApplication::exit(0);
 }
 
 QList<Feature> Controller::features() {
diff --git a/Patronum/src/PController.h b/Patronum/src/PController.h
index 9db8acd..50fbd14 100644
--- a/Patronum/src/PController.h
+++ b/Patronum/src/PController.h
@@ -130,7 +130,7 @@ protected:
 
 private:
     ControllerPrivate *d_ptr = nullptr;
-
+    bool _disableFinished = false;
     void printDefaultHelp() const;
 };
 }
diff --git a/Patronum/src/PServiceBase.cpp b/Patronum/src/PServiceBase.cpp
index 52330c4..2fbb842 100644
--- a/Patronum/src/PServiceBase.cpp
+++ b/Patronum/src/PServiceBase.cpp
@@ -179,10 +179,6 @@ int ServiceBase::exec() {
     if (fStart || fDaemon) {
 
         if (fDaemon) {
-            if (controller()->sendStop()) {
-                std::this_thread::sleep_for (std::chrono::milliseconds(500));
-            }
-
             if (!d_ptr->startDeamon())
                 return Patronum::PatronumError::UnsupportedPlatform;
             return 0;
@@ -190,7 +186,7 @@ int ServiceBase::exec() {
 
         QTimer::singleShot(0, nullptr, [this]() {
             if (controller()->sendStop()) {
-                std::this_thread::sleep_for (std::chrono::milliseconds(500));
+                std::this_thread::sleep_for (std::chrono::milliseconds(1000));
             }
 
             if (!d_ptr->start()) {