changed using fuser to lsof to determine if dpkg is busy

This commit is contained in:
vladimir.kuznetsov 2023-03-26 11:15:22 +03:00
parent 298e1e2e72
commit 02881c4409
2 changed files with 6 additions and 5 deletions

View file

@ -539,7 +539,7 @@ ErrorCode ServerController::installDockerWorker(const ServerCredentials &credent
QFutureWatcher<ErrorCode> watcher; QFutureWatcher<ErrorCode> watcher;
QFuture<ErrorCode> future = QtConcurrent::run([this, &stdOut, &cbReadStdOut, &cbReadStdErr, &credentials]() { QFuture<ErrorCode> future = QtConcurrent::run([this, &stdOut, &cbReadStdOut, &cbReadStdErr, &credentials]() {
do { while (true) {
if (m_cancelInstallation) { if (m_cancelInstallation) {
return ErrorCode::ServerCancelInstallation; return ErrorCode::ServerCancelInstallation;
} }
@ -547,12 +547,13 @@ ErrorCode ServerController::installDockerWorker(const ServerCredentials &credent
runScript(credentials, runScript(credentials,
replaceVars(amnezia::scriptData(SharedScriptType::check_server_is_busy), replaceVars(amnezia::scriptData(SharedScriptType::check_server_is_busy),
genVarsForScript(credentials)), cbReadStdOut, cbReadStdErr); 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); emit serverIsBusy(true);
QThread::msleep(1000); QThread::msleep(1000);
} } else {
} while (!stdOut.isEmpty());
return ErrorCode::NoError; return ErrorCode::NoError;
}
}
}); });
QEventLoop wait; QEventLoop wait;

View file

@ -1,4 +1,4 @@
pm_apt="/usr/bin/apt-get";\ pm_apt="/usr/bin/apt-get";\
if [[ -f "$pm_apt" ]]; then pm=$pm_apt; else exit; fi;\ 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;\ if [[ ! -f "/usr/bin/sudo" ]]; then $pm update -y -q; $pm install -y -q sudo; fi;\
sudo fuser /var/lib/dpkg/lock-frontend sudo lsof /var/lib/dpkg/lock-frontend