Могу ли я обновить Ubuntu активными пользователями, вошедшими в систему?
Я хотел бы запустить apt-get dist-upgrade, но я не знаю, как это повлияет на зарегистрированных пользователей. Как я могу узнать:
1. потребуется ли перезагрузка
2. будет ли система стабильной / работоспособной до перезагрузки, если потребуется ( эта страница подразумевает, что бывают ситуации, когда сервер перестанет работать до перезагрузки)
3. Должны ли пользователи выходить из системы, прежде чем я запусту apt для обновления
2 ответа
В Linux, как я думаю во всех Unixes, когда процесс имеет открытый файл, он может продолжать получать к нему доступ, даже если вы удалите его. После удаления файл недоступен другим процессам (для него нет записи в каталоге), но процессы, которые открыли его до удаления, могут продолжить доступ к нему, используя дескриптор, который ядро дало им, когда они открыли его. Ядро действительно освобождает дисковое пространство только тогда, когда файл закрыт всеми процессами, которые его используют.
Итак, когда вы запускаете небольшое обновление, такое как apt-get upgrade
это обычно не сильно влияет на систему. Предположим, например, что apt
обновления glibc
удалив /lib/x86_64-linux-gnu/libc-2.13.so
и положить /lib/x86_64-linux-gnu/libc-2.14.so
на своем месте. Это важное обновление, потому что практически все использует glibc
библиотека. Однако, вероятно, не будет никаких сбоев, потому что уже запущенные процессы будут продолжать использовать старый, удаленный файл. Новые процессы будут использовать новый файл. Вот почему, когда есть glibc
обновление безопасности, мы должны перезапустить все службы после обновления, но обычно нет необходимости перезагружать систему.
Однако могут быть глюки, если запущенный процесс открывает новые файлы во время работы. У процесса может быть уже открыта старая версия файла A, и он может попытаться открыть новую версию файла B, а новая B может быть несовместима со старой A. Или программа, которая уже работала до обновления, может попробуйте открыть некоторые библиотеки, и это может быть несовместимо с ними. Или программа может попытаться получить доступ к библиотеке, которая раньше находилась в каком-то определенном месте, а теперь она могла быть перемещена в другое место. По моему опыту, такие глюки случаются в основном с большими графическими приложениями. Если я обновляю свою систему во время работы, в какой-то момент firefox перестает отвечать или начинает странно себя вести. Приложения, работающие в терминалах, подвержены меньшему риску, но в крупных обновлениях вряд ли будет вообще какой-либо сбой.
Кроме того, во время обновлений некоторые службы на некоторое время отключаются. Кроме того, в обновлениях часто происходят сбои, что приводит к повреждению систем, которые затем необходимо исправить, и это может занять некоторое время.
Итог: степень, в которой ваши пользователи будут затронуты, зависит от того, что они делают, и в значительной степени от случайности. Для них нередко ничего не замечать, но было бы неразумно ставить на это свою жизнь.
Что касается перезагрузки, apt-get dist-upgrade
вероятно установит новое ядро, но не удалит уже работающее ядро. Если вы не возражаете против того факта, что вы все еще будете использовать старое ядро, вы можете пропустить перезапуск. Я считаю, что теоретически вы можете исправить практически любой сбой без перезапуска системы (просто путем перезапуска служб), но, как правило, легче перезапустить всю машину после больших обновлений.
- потребуется перезапуск
- будет ли система стабильной / работоспособной до перезагрузки, если потребуется
- будут ли пользователи выходить из системы, прежде чем я смогу запустить apt для обновления
- Вам, вероятно, следует перезагрузить компьютер, если он включает обновления glibc и ядра.
- Скорее всего, система будет работать до тех пор, пока вы не сможете перезапуститься, но если это вызывает проблемы, вам следует запланировать период обслуживания и позаботиться о своих обновлениях и времени простоя одновременно.
- Вы, пользователи, не должны выходить из системы, но, опять же, согласовывайте окно обслуживания с пользователями и бизнесом.
Это ситуация, когда вы (как системный администратор?) Должны управлять ожиданиями пользователей. Если у вас есть набор обновлений, достаточно важных для того, чтобы их можно было запускать за пределами окна обслуживания, я думаю, что вы можете сделать экономическое обоснование, чтобы получить реальное время простоя и выполнить работу должным образом.