diff --git a/client/core/servercontroller.cpp b/client/core/servercontroller.cpp index 4c87d1b8..a09263d6 100644 --- a/client/core/servercontroller.cpp +++ b/client/core/servercontroller.cpp @@ -539,7 +539,7 @@ ErrorCode ServerController::installDockerWorker(const ServerCredentials &credent QFutureWatcher watcher; QFuture future = QtConcurrent::run([this, &stdOut, &cbReadStdOut, &cbReadStdErr, &credentials]() { - do { + while (true) { if (m_cancelInstallation) { return ErrorCode::ServerCancelInstallation; } @@ -547,12 +547,13 @@ ErrorCode ServerController::installDockerWorker(const ServerCredentials &credent runScript(credentials, replaceVars(amnezia::scriptData(SharedScriptType::check_server_is_busy), genVarsForScript(credentials)), cbReadStdOut, cbReadStdErr); - if (!stdOut.isEmpty() || stdOut.contains("Unable to acquire the dpkg frontend lock")) { + if (stdOut.contains("/var/lib/dpkg/lock-frontend")) { emit serverIsBusy(true); QThread::msleep(1000); + } else { + return ErrorCode::NoError; } - } while (!stdOut.isEmpty()); - return ErrorCode::NoError; + } }); QEventLoop wait; diff --git a/client/server_scripts/check_server_is_busy.sh b/client/server_scripts/check_server_is_busy.sh index 17c27864..72f267ec 100644 --- a/client/server_scripts/check_server_is_busy.sh +++ b/client/server_scripts/check_server_is_busy.sh @@ -1,4 +1,4 @@ pm_apt="/usr/bin/apt-get";\ if [[ -f "$pm_apt" ]]; then pm=$pm_apt; else exit; fi;\ if [[ ! -f "/usr/bin/sudo" ]]; then $pm update -y -q; $pm install -y -q sudo; fi;\ -sudo fuser /var/lib/dpkg/lock-frontend \ No newline at end of file +sudo lsof /var/lib/dpkg/lock-frontend \ No newline at end of file