Вопрос или проблема
Я хочу установить пакеты с помощью yum в фоновом режиме следующим образом:
yum -y install ntp &
Но этот пример не работает, и установка yum не происходит в фоновом режиме. Как исправить мою команду, чтобы yum
установил ntp
в фоновом режиме?
# yum -y install ntp &
[1] 26960
09:03:15 root@ereztest:~ # Загрузка плагинов: rhnplugin
Эта система получает обновления из RHN Classic или RHN Satellite.
Настройка процесса установки
Раз разрешение зависимостей
--> Выполнение проверки транзакций
---> Пакет ntp.x86_64 0:4.2.6p5-10.el6.1 будет установлен
--> Завершение разрешения зависимостей
Используйте флаг -q
для фоновой задачи, чтобы подавить вывод.
Из справочной страницы yum
:
-q, –quiet
Запуск без вывода. Обратите внимание, что вам, вероятно, также следует использовать -y.
Похоже, что yum выполняется в фоновом режиме (согласно строке [1] 26960
в выводе — здесь 26960 — это идентификатор процесса фоновый yum), но он все равно отправляет некоторый вывод на терминал. Чтобы обойти это, добавьте перенаправление вывода для stdout и/или stderr по мере необходимости:
yum -y install ntp >/tmp/yum-out 2>&1 &
Здесь >/tmp/yum-out
перенаправляет вывод (stdout) в файл /tmp/yum-out, а 2>&1
перенаправляет вывод ошибок (stderr) в тот же файл. Таким образом, если вы хотите вернуться и посмотреть вывод позже (например, если произошла ошибка), все будет сохранено в файле /tmp/yum-out
.
# yum install package-name -y > /dev/null 2>&1
Ответ или решение
Установка пакетов в фоновом режиме с использованием yum
Установка пакетов в фоновом режиме может быть полезной, если вы хотите продолжать выполнять другие задачи, не дожидаясь завершения установки. Использование команды yum
в Linux для установки пакетов работает относительно просто, но есть нюансы, которые следует учитывать, чтобы правильно настроить установку в фоновом режиме и избежать вывода информации в терминал.
Пример команды
Чтобы установить пакет ntp
в фоновом режиме с помощью yum
, вы можете использовать следующую команду:
yum -y install ntp > /tmp/yum-out 2>&1 &
Разбор команды
-
yum -y install ntp:
- Используемая команда
yum
автоматически устанавливает пакетntp
, где флаг-y
отвечает за автоматическое подтверждение всех запрашиваемых операций (например, подтверждение установки зависимостей).
- Используемая команда
-
> /tmp/yum-out:
- Это перенаправление стандартного вывода (stdout) в файл
/tmp/yum-out
. Оно позволяет сохранить вывод установки, чтобы к нему можно было обратиться позднее.
- Это перенаправление стандартного вывода (stdout) в файл
-
2>&1:
- Это перенаправление стандартного вывода ошибок (stderr) в тот же файл. Это означает, что если возникнут ошибки, они будут записаны в тот же файл, что и обычный вывод. Это особенно полезно для отладки, поскольку вы можете проверить все выводимые сообщения в одном месте.
-
&:
- Завершает команду, позволяя её запуск в фоновом режиме. После этого вы получите PID (идентификатор процесса), который вы можете использовать для мониторинга установленного процесса.
Сокрытие вывода
Если вы хотите полностью скрыть вывод и не сохранять его, можно использовать следующее:
yum -y install ntp > /dev/null 2>&1 &
Здесь > /dev/null
перенаправляет stdout в "черную дыру" системы, где данные не сохраняются. Это полезно, когда вам не нужно хранить никаких данных о выполнении команды, и важна только сама установка.
Итоги
Поскольку yum
может порой выдавать много информации при установке, правильно настроив перенаправление вывода, вы сможете избежать загромождения вашего терминала лишними данными. Следуйте приведённым выше рекомендациям для настройки фоновой установки пакетов так, чтобы это соответствовало вашему рабочему процессу.
Таким образом, вы получите эффективный способ установки программного обеспечения без прерывания своей работы и с возможностью последующего анализа состояния установки, если это потребуется.