Мне нужно проверить блокировку dpkg перед установкой приложений в скрипт [дубликат]

У меня проблема со сценарием, в который я написал установить кучу приложений, в основном, когда он перебирает массив имен приложений для установки, он проверяет их, выполнив:

dpkg -l | grep -q $i

и на основе $? установит или пропустит приложение. Проблема в том, что для нескольких элементов он не работает из-за блокировки dpkg, почти весь список работает, только полдюжины не работают, но работают, если вы снова запустите сценарий.

Можно ли дождаться завершения dpkg перед запуском 'apt-get install'?

На данный момент я добавил 'sleep 0.5' между двумя строками, и это устранило проблему, но, очевидно, некрасиво и медленнее.

Спасибо, Noki

4
задан 17 May 2014 в 17:56

1 ответ

Для идентификации процессов с помощью файлов или сокетов, можно использовать fuser команда (см. man fuser для большего количества информации). В случае dpkg, можно проверить на блокировку как корень со следующей командой:

fuser /var/lib/dpkg/lock
9
ответ дан 17 November 2019 в 13:54

Другие вопросы по тегам:

Похожие вопросы: