Должен ли я перезагружаться после обновления pacman?

после запуска

sudo pacman -Syyu 

или

 sudo pacman -S [something to install] 

я должен перезапустить, чтобы быть в безопасности?

3 Solutions collect form web for “Должен ли я перезагружаться после обновления pacman?”

Если есть обновления ядра, glibc или systemd, вы можете перезапустить, чтобы обновленные версии были использованы. Если у вас есть, скажем, обновления для среды рабочего стола, достаточно простого выхода из системы / входа в систему.

Лучший способ – найти, какие программы / службы используют старые библиотеки и перезапустить их. И вы можете достичь этого, перечислив все использованные файлы с помощью lsof и найдите те, у которых есть тип DEL. DEL означает, что имя файла было удалено из файловой системы, но оно все еще застревает в памяти, потому что кто-то использует его.

Вот полная командная строка:

  sudo lsof +c 0 | grep 'DEL.*lib' | awk '1 { print $1 ": " $NF }' | sort -u 

Единственной обязательной причиной перезагрузки является новое ядро ​​(и вы можете выполнить мягкую перезагрузку с помощью kexec). Подробнее см. https://wiki.archlinux.org/index.php/Kexec , вкратце:

  • загрузите новое ядро, initramfs и укажите загрузочный cmdline

     kexec -l /boot/new-kernel --initrd=/boot/new-initramfs --reuse-cmdline 
  • invoke kexec (используйте systemctl для правильного выключения, kexec -e будет выполняться напрямую)

     systemctl kexec 
  • Обратите внимание: если вы создаете kexec-load@.service как описано в вики, если вы перезагрузитесь, systemd автоматически перезагрузится с помощью kexec вместо перезагрузки BIOS

Немного улучшена версия, которая дает имена системных служб:

 PIDS="(lsof +c0 -n 2> /dev/null | grep 'DEL.*lib' | awk '{print $2}' | sort -u)" for PID in $PIDS; do systemctl status $i done | grep '●' | awk '{print $2}' | sort -u 

или однострочный:

 for i in $(lsof +c0 -n 2> /dev/null | grep 'DEL.*lib' | awk '{print $2}' | sort -u); do systemctl status $i; done | grep '●' | awk '{print $2}' | sort -u 

Обратите внимание, что есть некоторые проблемы:

  • systemctl daemon-reload должен быть выполнен до перезапуска чего-либо еще
  • если PID 1 (сама система) необходимо перезапустить, это можно сделать, используя systemctl daemon-reexec
  • systemctl restart dbus.service прерывает некоторые другие службы, их необходимо перезапустить после перезапуска dbus:
    • systemd : systemctl daemon-reexec
    • systemd-logind
    • systemd-machined
    • возможно, другие systemd – * / другие службы, которые (в большой степени) используют dbus
  • Если вы подключены через SSH и SSH необходимо перезапустить, но systemctl restart sshd не будет перезапускать его до тех пор, пока вы подключены, я вижу 2 варианта:
    • расписание systemctl restart sshd используя таймеры at/cron/systemd
    • перезапустите SSH с помощью другой удаленной (безопасной) оболочки, такой как mosh
  • запуск screen/tmux также может блокировать службы, такие как SSH от перезапуска, самый простой способ – закрыть эти сеансы перед перезагрузкой служб
  • как сказано в предыдущем ответе, может потребоваться логит / логин, особенно для графических сеансов
  • Как найти использование пакета в Arch Linux?
  • Определите, предоставляется ли пакет установленным пакетом в Arch Linux
  • Как включить rsync в libcurl?
  • Как воссоздать файл пакета из установленного пакета?
  • Могу ли я сделать pacman осведомленным о пакетах, установленных вручную?
  • Исправление всех несовместимостей менеджера пакетов и пипсов
  • Как установить пакет «dpkg» из AUR
  • Альтернативы xsounds.org для haskell-core на arch linux
  • Как добавить программу для индексирования Synapse?
  • Отсутствует Python.h в Arch
  • Как скопировать вывод pacman-color в файл и отобразить вывод с цветами в терминале
  • Linux и Unix - лучшая ОС в мире.