Как вручную перезапустить службы, затронутые обновлениями apt?

Как я могу выпускать подходящие обновления без автоматической остановки / запуска демонов? Я хотел бы вручную перезапустить службы.

Приведу конкретный пример:

Я еще раз вернусь к долго работающему компьютеру и запущу sudo apt-get update && time sudo apt-get dist-upgrade. Это очень простое средство просмотра всех доступных обновлений, за которым следует простое нажатие клавиши Enter для полного исправления систем.

Если я вижу postgresql-9.1 в списке обновлений, я прекращаю обновление. В этом случае apt остановит службу на ранней стадии процесса, применит несколько некритических операций, а затем перезапустит службу намного позже. Обычное обновление может вызвать минуты простоя.

Я хотел бы сказать «да» обновлению, чтобы применить все исправления, а затем вручную перезапустить службу в удобное время.

6
задан 6 December 2012 в 21:23

3 ответа

Вы можете предотвратить перезапуск службы с помощью уровня политики Debian, который работает и в Ubuntu.

Пример: создайте файл с именем /usr/sbin/policy-rc.d со следующим содержимым (не забудьте сделать файл исполняемым):

#!/bin/sh

exit 101

Нет службы & sup1; будет автоматически запущен / остановлен / перезапущен больше. Подробности см. В /usr/share/doc/sysv-rc/README.policy-rc.d.gz и о том, как настроить его так, чтобы он просто игнорировал один сервис.

1. при условии, что установочные сценарии следуют рекомендациям Debian и используют invoke-rc.d для перезапуска службы

0
ответ дан 6 December 2012 в 21:23

Я хотел бы сказать «да» обновлению, чтобы применить все исправления, а затем вручную перезапустить службу в удобное время.

Вы не можете сделать это в общем случае, извините. Даже если служба не перезапускается, пакеты не дают никакой гарантии, что обновления без перезапуска службы не сломают вещи (например, что-нибудь динамически загружаемое, например модули).

Если вам нужна стабильная система, вам следует либо отказаться от обновления пакета, либо полностью обновить его, завершив перезапуск службы.

1110] Я не могу указать на достоверный источник здесь, так как не могу доказать отрицательный. Политика Debian актуальна здесь; это просто не дает гарантию того, что вы ищете. Согласно политике Debian, функциональные возможности пакета не должны работать до тех пор, пока postinst не завершится успешно. Таким образом, мы можем сделать вывод, что если postinst включает обязательный перезапуск службы, то это должно произойти.

Некоторые другие механизмы, которые могут вам помочь:

  1. Используйте apt-get --download-only upgrade для предварительной загрузки обновлений.
  2. Удерживать определенные пакеты от обновлений.
  3. Посмотрите на «высокую доступность», чтобы можно было обновлять серверы по очереди, не прерывая их обслуживание. С Postgres это, вероятно, потребовало бы некоторой реплицированной конфигурации.
0
ответ дан 6 December 2012 в 21:23

Существует инструмент на основе CLI, который называется sysv-rc-conf Install sysv-rc-conf . Вы также можете установить его, запустив следующую команду в терминале:

sudo apt-get install sysv-rc-conf

Затем вы можете активировать / открыть его, запустив:

sudo sysv-rc-conf

Снимок экрана:

enter image description here

0
ответ дан 6 December 2012 в 21:23

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

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