servicios de reinicio automático de actualización de apt-get

servicios de reinicio automático de actualización de apt-get

Tengo un script desatendido para instalar servidores. Al principio del guión hay un sudo apt-get dist-upgrade --yes. La actualización dist tiene una pantalla de entrada de usuario desagradable al final que solicita reiniciar los servicios:
ingrese la descripción de la imagen aquí

¿Es posible aceptar automáticamente reinicios del servicio o desactivar esta pantalla? Rompe todo mi guión. También me temo que podría dejar mi servidor bloqueado en algún momento al actualizar...

Mismo resultado con apt-get update

editar: lo intenté sin éxito:

#!/bin/bash
sudo apt-get update
sudo apt-get remove apt-listchanges --assume-yes --force-yes &&

#using export is important since some of the commands in the script will fire in a subshell
export DEBIAN_FRONTEND=noninteractive &&
export APT_LISTCHANGES_FRONTEND=none &&

#lib6c was an issue for me as it ignored the DEBIAN_FRONTEND environment variable and fired a prompt anyway. This should fix it
echo 'libc6 libraries/restart-without-asking boolean true' | debconf-set-selections &&

echo "executing wheezy to jessie" &&
find /etc/apt -name "*.list" | xargs sed -i '/^deb/s/wheezy/jessie/g' &&

echo "executing autoremove" &&
sudo apt-get -fuy --force-yes autoremove &&

echo "executing clean" &&
sudo apt-get --force-yes clean &&

echo "executing update" &&
sudo apt-get update &&

echo "executing upgrade" &&
sudo apt-get --force-yes -o Dpkg::Options::="--force-confold" --force-yes -o Dpkg::Options::="--force-confdef" -fuyq upgrade &&

echo "executing dist-upgrade" &&
sudo apt-get --force-yes -o Dpkg::Options::="--force-confold" --force-yes -o Dpkg::Options::="--force-confdef" -fuyq dist-upgrade

Respuesta1

Otras respuestas simplemente se omitieron needrestartpor completo.

Pero la variable de entornoNEEDRESTART_MODEpermite especificar un modo. Y al elegir "(a)automáticamente", podrá beneficiarse needrestartsin ser bloqueado por el mensaje:

sudo NEEDRESTART_MODE=a apt-get dist-upgrade --yes

Respuesta2

Como otros mencionaron, el problema en este caso está en el needrestartcomando, que ahora forma parte del proceso de actualización de apt-get en Ubuntu (específicamente 22.04, que es lo que estoy usando). De forma predeterminada, está configurado en modo "interactivo", lo que provoca la interrupción de los scripts.

Para cambiar este comportamiento, podemos editar el /etc/needrestart/needrestart.confarchivo, cambiando la línea:

#$nrconf{restart} = 'i';

a

$nrconf{restart} = 'a';(si queremos reiniciar los servicios automáticamente) o $nrconf{restart} = 'l';simplemente enumerar los servicios que necesitan reiniciarse.

Si está ejecutando un script y desea realizar esta edición sin usar un editor interactivo como vim, puede hacerlo usando sedalgo como:

sudo sed -i 's/#$nrconf{restart} = '"'"'i'"'"';/$nrconf{restart} = '"'"'a'"'"';/g' /etc/needrestart/needrestart.conf

Se ve feo debido a las comillas simples en el archivo de configuración y a cómo sed maneja las comillas simples, pero funciona. Deje un comentario si tiene un enfoque mejor.

Respuesta3

En lugar de usar sed o editar la configuración principal, agregue su propio archivo de configuración en /etc/needrestart/conf.d/no-prompt.conf:

$nrconf{restart} = 'a';

Respuesta4

Alternativamente, yopensarpuedes quitar elneedrestartpaquete en sí.

sudo apt-get remove needrestart

Estoy usando esto para el aprovisionamiento de AWS EC2 en Ubuntu 22.04. Por alguna razón, export DEBIAN_FRONTEND=noninteractiveno pareció funcionar.

información relacionada