LINUX.ORG.RU
ФорумTalks

А как работает обновление без перезагрузки?


0

1

Я вот не совсем понимаю. Вроде как хвалятся, что в линуксе перезагружаться надо только если ядро обновилось, да и то есть нюансы. Однако по факту всё, что есть в линуксе - это возможность перезаписать запущенный бинарник. От этого в памяти никакого хот-патчинга машинного кода не будет, будет висеть и выполняться старая версия бинарника и старые версии разделяемых библиотек. Чтобы были новые, надо перезапустить приложение, а это менеджеры пакетов при обновлении, насколько я знаю, не делают и даже не пишут, какие процессы и сервисы были затронуты обновлением, чтобы можно было вручную перезапустить их. В итоге приходим к тому, что надежнее всего простая перезагрузка после всех обновлений.

★★★★★

в сусе есть команда zypper ps которая покажет список обновленных пакетов, которые запущены.

fallout4all ★★★★★
()

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

Почему это не делают? Сами, конечно, не делают. Но ничего не мешает автору пакета установочный скрипт написать правильно.

надежнее всего простая перезагрузка

Ну раз надёжнее то грузись. А нам и так неплохо.

Stahl ★★☆
()

а это менеджеры пакетов при обновлении, насколько я знаю, не делают и даже не пишут, какие процессы и сервисы были затронуты обновлением, чтобы можно было вручную перезапустить их

Выкинь, наконец, свой арчик на помойку.

DNA_Seq ★★☆☆☆
()

Помнишь, была такая фишка в мастдайке, как "soft reset"? Вот таки в линуксе тоже при желании, говорят, можно так сделать. А вот насчет ведра — слышал звон, да не знаю, где он. Возможно, "постепенно" подменяют в оперативке старове ведро на новое (т.е. все новые процессы уже новым ведром обслуживаются). Но это уже мои домыслы.

Eddy_Em ☆☆☆☆☆
()

Есть одна машинка (~1000км от меня). Работает шлюзом в небольшом офисе. Удалённо обновляю где-то раз в неделю. Перезагрузка происходит только от физического выключения (от меня не зависит). Иногда аптайм по 100 дней бывает (причём несколько обновлений модулей и ядра). По-началу тоже очковал. Теперь пофиг. Заморожен только vbox от греха подальше.

UPD: 4 года если что так работает.

ziemin ★★
()
Последнее исправление: ziemin (всего исправлений: 1)
Ответ на: комментарий от Legioner

Постинсталляционные скрипты есть практически везде. Проще перечислить дистрибутивы, где это не реализовано.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от DNA_Seq

Постинсталляционные скрипты есть практически везде. Проще перечислить дистрибутивы, где это не реализовано.

В арче они тоже есть.

Axon ★★★★★
()
Последнее исправление: Axon (всего исправлений: 1)
Ответ на: комментарий от DNA_Seq

В каких дистрибутивах постинсталляционные скрипты перезапускают затронутые обновлением программы?

Legioner ★★★★★
() автор топика
Ответ на: комментарий от Axon

А зависимости отслеживают? Если postgresql зависит от zlib и обновился zlib - будет ли рестарт постгреса?

Legioner ★★★★★
() автор топика
Ответ на: комментарий от Legioner

Если postgresql зависит от zlib и обновился zlib

Если zlib уже был подгружен постгресом, то скорее всего ничего не сломается

Gary ★★★★★
()

Чтобы были новые, надо перезапустить приложение, а это менеджеры пакетов при обновлении, насколько я знаю, не делают и даже не пишут, какие процессы и сервисы были затронуты обновлением, чтобы можно было вручную перезапустить их

Сервисы перезапускаются. Пользовательские приложения — правильно, что не перезапускаются. Совершенно неизвестно, что там в сущности открыто, и в каком оно состоянии, и сколько времени потом пользователю придётся это состояние заново воспроизводить.

fang
()

С помощью lsof или прямым разглядыванием /proc можно найти все процессы, использующие обновлённые бинари. Ну и поперезапускать или просто показать куда-то список. Сам пакетный менеджер в этом деле вообще сбоку и мешать не будет. А ФС не мешает пакетному менеджеру делать своё дело.

const86 ★★★★★
()

не перегружаюсь без необходимости особой - uptime до 15 дней на генте и то перезагрузка для обновления ядра или инит-сервиса.

К сожалению линукс не ерланг - только он может работать годами без перезапусков вообще - у него есть hot code loading, благодаря реализованной иммутабельности от ФП. Может когда нибудь кто-то захочет реализовать возможности этого языка для ОС. Например инит систему или там ПМ...

Когда-то интересовался как работают обновления - сейчас уже не вспомню, но видел упоминание про /var/run...

Как бы ты не обновлялся, такие монстры как лиса, будут требовать перезагрузки, в силу особенностей внутренней архитектуры и опять же отсутствие иммутабельности. Но например емакс - вполне работает после обновлений скриптов хотя...

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

swwwfactory ★★
()
Ответ на: комментарий от DNA_Seq

А толку то? Вот обновился qt, надо перезагружать сессию kde. Расскажи в каком дистрибутиве postinst скрипты это делают.

Reset ★★★★★
()

Чем дольше сервер работает без перезагрузки тем больше граблей словишь на перезагрузке.

Reset ★★★★★
()

приходим к тому, что надежнее всего простая перезагрузка после всех обновлений.

С выключением питания. Иначе недостаточно надежно.

tailgunner ★★★★★
()

От этого в памяти никакого хот-патчинга машинного кода не будет, будет висеть и выполняться старая версия бинарника и старые версии разделяемых библиотек.

ну и пусть себе висят. Рано или поздно приложения все равно перезапустятся. Зачем об этом вообще думать?

dikiy ★★☆☆☆
()
Ответ на: комментарий от Legioner

Если postgresql зависит от zlib и обновился zlib - будет ли рестарт постгреса?

Не хватало его еще автоматически перезапускать на каждый чих, особенно на сервере.

goingUp ★★★★★
()

а это менеджеры пакетов при обновлении, насколько я знаю, не делают

Вообще-то делают. Тоже мне, линуксоид.

zgen ★★★★★
()

Именно поэтому дебиан - один из самых адекватных дистрибутивов. Поставил стабильный, забыл что такое обновления. Поставил тестинг - получил авторестарт сервисов, а с аппером еще и напоминалку. Он еще и при обновлении ядра просит перезапуска системы. Ну а сид - для любителей арча

minakov ★★★★★
()

Показ всех процессов, у которых открыты несуществующие файлы:

lsof / | grep DEL

Black_Shadow ★★★★★
()
Ответ на: комментарий от dikiy

ну и пусть себе висят. Рано или поздно приложения все равно перезапустятся. Зачем об этом вообще думать?

Затем, что в памяти висит старая версия с багами и, возможно, уязвимостями, при том, что на диске новая.

Legioner ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

С выключением питания. Иначе недостаточно надежно.

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

Legioner ★★★★★
() автор топика
Ответ на: комментарий от swwwfactory

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

Рестарт приложений на iOS при обновлении выполняется. Перезагрузка выполняется при обновлении ОС до новой версии. А так - там нет зависимостей между приложениями (даже специально нельзя достать другие приложения, ибо sandboxing), каждое приложение тащит все свои библиотеки, поэтому тут всё просто. В линуксе пакеты используют друг-друга, поэтому тут сложнее ситуация.

Legioner ★★★★★
() автор топика
Ответ на: комментарий от dikiy

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

Tweaker ★★★★☆
()

Кстати, у меня была мысль написать скрипт, который перезапускает сервисы, пакетtoll-fraud wikipediaы которых обновились. Но руки так и не дошли.

Black_Shadow ★★★★★
()

Демоны обычно перезапускаются.

CYB3R ★★★★★
()
Ответ на: комментарий от Rastafarra

15 дней! это победа!!!

да прогресс, но это из-за иксов в основном, на серверах по полтора года держится без особых проблем...

swwwfactory ★★
()

В дебиане пакетный менеджер это делает даже не спрашивая, при чём поднимает после обновления даже те сервисы, которые до него были принудительно опущены.

В других дистрах достаточно посмотреть лог обновления и подумать, что из обновлённого нужно перезапустить.

vurdalak ★★★★★
()

Aptitude перезапускает демонов, если они обновились.

andreyu ★★★★★
()
Ответ на: комментарий от swwwfactory

На i-осях считается чуть ли не обязятельным правилом хорошого тона работа и обновление приложений без рестарта вообще.

Да что вы говорите. При обновлении приложений мне предлагают предварительно выгрузить кучу запущенных приложений. Если обновляется система, то будет требование ребута.

andreyu ★★★★★
()
Ответ на: комментарий от tailgunner

С выключением питания. Иначе недостаточно надежно.

И с тройным нажатием ресета после выдергивания вилки из сети.

andreyu ★★★★★
()
Ответ на: комментарий от minakov

Он еще и при обновлении ядра просит перезапуска системы.

Ага. У меня это напоминалка по две недели висит. Ну лень мне перезапускать десктоп - долго он грузится. Перезапуская только когда /tmp забъется барахлом и выжрет всю оперативу, потому что перезагрузиться проще все же чем чистить /tmp

Suntechnic ★★★★★
()
Ответ на: комментарий от andreyu

С выключением питания. Иначе недостаточно надежно.

И с тройным нажатием ресета после выдергивания вилки из сети.

Я еще в щитке выключаю зэушки для надежности, минут на 5-10 иначе фирмварь может не проапдейтися, как-то с наводками из сети вроде связано, но не вникал.

Suntechnic ★★★★★
()

Да, согласен, после массированного обновления проще сделать перезагрузку.
При обновлении частичном — можно обойтись и без перезагрузки.

Bad_ptr ★★★★★
()
Ответ на: комментарий от Legioner

Библиотеки отследить можно, а какие-нибудь файлы конфигов в другом пакете уже вряд ли

Отследить можно всё, о чем знает менеджер пакетов.

обычно перезапуска программы достаточно

Но ведь это недостаточно надежно!!1

tailgunner ★★★★★
()
Ответ на: комментарий от Suntechnic

Перезапуская только когда /tmp забъется барахлом и выжрет всю оперативу

Это ж сколько надо ждать…

du --s /tmp
13M     /tmp
uptime
 15:14:42 up 27 days, 20:29, 10 users,  load average: 0.16, 0.05, 0.06

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin

У меня /tmp по совместительству директория загрузки все браузеров.

Suntechnic ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.