Servicio Upstart para realizar un pkgsync completo y reiniciar en Ubuntu Trusty

Como ya sabéis en los centros educativos de Extremadura, usamos pkgsync para mantener un software uniforme en el conjunto de máquinas que administramos.

El siguiente es un servicio Upstart que tengo añadido a las máquinas Ubuntu Trusty de mi centro:

/etc/init/autopkgsync.conf

# autopkgsync
#
description "Do a full autopkgsync on runlevel 3 and reboot"
author "Esteban M. Navas Martín"

start on (runlevel [3] and local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]

respawn
exec /usr/local/sbin/pkgsync -pcrR /dev/tty1 2>&1


Como ya os podréis imaginar, ésta es una de esas cosas en las que, como todo administrador, trabajo para trabajar menos…

Básicamente, lo que me permite el servicio es realizar un pkgsync completo que:

  • Actualiza los paquetes de la máquina.
  • Hace un purge de kernels antiguos.
  • Elimina dependencias de paquetes desinstalados, hace un purge de paquetes desinstalados y limpia la caché.
  • Elimina librerías huérfanas.
  • Y reinicia el equipo.

Si echáis un vistazo a la configuración del servicio, veréis que sólo se inicia en el nivel 3, cuando los sistemas de ficheros locales están montados y las interfaces de red levantadas.

Como Ubuntu inicia por defecto en el nivel 2, podéis comprobar que el servicio está parado:

status autopkgsync 
autopkgsync stop/waiting

Y si quiero realizar el pkgsync completo, no tengo más que iniciar el servicio:

start autopkgsync 
autopkgsync start/running, process 4411

Como estamos derivando la salida al terminal 1 si la máquina se encuentra en el entorno gráfico, no tenemos más que pulsar Ctrl+Alt+F1 para ver el estado de ejecución de pkgsync.

También podría iniciar el servicio, simplemente cambiando al runlevel 3:

telinit 3

El servicio me resulta muy útil cuando necesito iniciar la actualización de un equipo y marcharme sin esperar porque sé que, cuando termine, se va a reiniciar; y quiero que el usuario vea en el terminal que la máquina está trabajando.

Be the first to comment

Por favor acceder para comentar.