Действительно ли это необходимо для перезагрузки после обновления ядра (через APT)?

Выполнение его с

strace -e trace=open,close,read,write,connect,accept your-command-here

вероятно, было бы достаточно.

Необходимо будет использовать -o опция поместить вывод strace где-нибудь кроме консоли, если процесс может распечатать к stderr. Если Ваши ветвления процесса, Вам также будет нужно -f или -ff.

О, и Вы могли бы хотеть -t также, таким образом, Вы видите, когда вызовы произошли.


Отметьте, Вы, возможно, должны настроить список вызова функции в зависимости от того, что делает Ваш процесс - я должен был добавить getdents например, для получения лучшего демонстрационного использования ls:

$ strace -t -e trace=open,close,read,getdents,write,connect,accept ls >/dev/null
...
09:34:48 open("/etc/ld.so.cache", O_RDONLY) = 3
09:34:48 close(3)                       = 0
09:34:48 open("/lib64/libselinux.so.1", O_RDONLY) = 3
09:34:48 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@V\0\0\0\0\0\0"..., 832) = 832
09:34:48 close(3)                       = 0
...
09:34:48 open("/proc/filesystems", O_RDONLY) = 3
09:34:48 read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tb"..., 1024) = 366
09:34:48 read(3, "", 1024)              = 0
09:34:48 close(3)                       = 0
09:34:48 open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
09:34:48 close(3)                       = 0
09:34:48 open(".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
09:34:48 getdents(3, /* 5 entries */, 32768) = 144
09:34:48 getdents(3, /* 0 entries */, 32768) = 0
09:34:48 close(3)                       = 0
09:34:48 write(1, "file-A\nfile-B\nfile-C\n", 21) = 21
09:34:48 close(1)                       = 0
09:34:48 close(2)                       = 0
7
10.12.2013, 16:26
4 ответа

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

выборка

Что такое Ksplice Uptrack?

Ksplice Uptrack позволяет Вам применить 100% важных обновлений системы защиты ядра, выпущенных Вашим поставщиком Linux без перезагрузки.

Ksplice Uptrack доступен для Oracle Linux, бесплатно, для Oracle клиенты Linux с Главной подпиской поддержки. Кроме того, любой может использовать Ksplice Uptrack бесплатно на Рабочем столе Ubuntu и Fedora.

Согласно веб-сайту это свободно для Fedora и Настольных пользователей Ubuntu:

выборка

Свободный для Fedora и рабочего стола Ubuntu.

История технологии

Технология KSplice вышла на сцену в 2009, если не изменяет память, меня корректный. Впечатляющая демонстрация, которую использовали технологические разработчики, должна была переместить систему Linux через все Ядра Linux, которые когда-либо выпускались. Я никогда не видел демонстрацию, но то требование врезалось в мою память с тех пор.

Вот статья Ars Technica, которую я не забываю читать, названный: Ksplice: компьютеры Обновления без перезагрузки.

Наконец вот технический документ, который касается технологии и как это работает, названное: Ksplice: Автоматические Обновления Ядра Без перезагрузки.

9
27.01.2020, 20:16
  • 1
    Никогда не слышал, которых, это является захватывающим! +1 должны найти что демонстрация... попытка –  chaos 10.12.2013, 17:22
  • 2
    Существуют некоторые демонстрации на YouTube, это новые не полного обновления: youtube.com/watch?v=1m5HJ7h1l7I –  slm♦ 10.12.2013, 17:46
  • 3
    FWIW, встроенную поддержку ядра этого называют kexec. –  jweyrich 30.09.2014, 17:41

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

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

3
27.01.2020, 20:16
  • 1
    Действительно, я знаю, что Вы не делаете на самом деле "должен" сделать это, если Вам не нужно новое определенное, показывает/устраняет обновленного ядра, однако в большинстве случаев, это - рекомендуемое действие. –  Raj 10.12.2013, 16:39
  • 2
    Почему и кого? Быть немного параноидальным о незначительных сбоях программного обеспечения разумно, и поэтому если у Вас нет причины не к перезагрузке, затем необходимо перезагрузить, в случае, если существует незначительный сбой в обновлении (конечно, если существует незначительный сбой, это мог бы столь же легко быть незначительный сбой, который не будет выставлен до перезагрузки, так...). Однако, если у Вас есть серьезное основание не к перезагрузке, затем не делайте. Конечно, это приводит к очевидному: если у Вас есть серьезное основание не к перезагрузке, то не обновляйте, пока Вы не можете. –  goldilocks 10.12.2013, 16:46

Необходимо? Да, если Вы хотите новое ядро. Но это может работаться вокруг? Да также. Но затем, почему нам нужна перезагрузка для обновления ядра? Поскольку Вы не перезагружаете ни для чего больше! Теперь, для обходного решения необходимо знать, что некоторая странность может (и быть), происходят.

0
27.01.2020, 20:16

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

При помощи kexec можно сократить время, система не доступна.

Ksplice предлагает для некоторого ядра дистрибутивов живое исправление.

0
27.01.2020, 20:16

Теги

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