OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.
Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.
Apagado rápido con systemd
Buenas.
Siguiendo con mi aclamada serie "Systemd y la puta madre que lo parió a él y al deficiente mental de Poettering", vamos a ver hoy cómo solucionar un temita la mar de cachondo que ya me he encontrado con más de una y más de dos máquinas con esta puta mier^H^H^H maravilla gestionando sus recursos.
El tema es que durante el reinicio/apagado del sistema, podemos encontrarnos con algún job de systemd que se queda pilado durante minuto y medio antes de dar timeout, forzar salida y continuar. Esto es especialmente divertido si tienes montados sistemas de ficheros en red, ya que como systemd está tan bien parido, baja la red antes de desmontar los recursos. Así que tienes un minutito y medio de espera por cada punto de montaje que tengas. Si a eso le añades un slapd o algún otro servicio porculero como apache, te puedes tirar un buen rato mirando el mensajito ése tan gracioso de:
[***] A stop job is running for suputamadrecagando
Bueno, yo me lo he montado para solucionarlo de dos maneras distintas, en función de si se trataba de un servicio o de sistemas de ficheros en red montados.
Para solucionar el problema de un servicio que se engancha, basta con localizar el archivo .service relativo al mismo (usualmente en /usr/lib/systemd/system, aunque puede variar) y añadirle ésto:
KillMode=none
Al principio de la sección [Service].
En cuanto a la solución para recursos de red montados, es un poco más elaborada. Y pasa por asegurarnos de desmontar todos los puntos de montaje que se correspondan a un share de red antes de llevar a cabo el apagado/reinicio.
Yo he optado por montar un script mierder pero eficaz como éste:
#!/bin/bash
CIFS=`mount | grep cifs |awk '{print $3}'`
NFS=`mount | grep nfs | awk '{print $3}'`
for i in $CIFS; do
umount $i
done
for i in $NFS; do
umount $i
done
Luego toca asegurarnos de que el script se ejecute antes del proceso de apagado propiamente dicho. Para ello, podemos editar los archivos systemd-poweroff.service, y systemd-reboot.service (no confundir con el archivo reboot.service que es un enlace a /dev/null, tócate los cojones Mariloli), una vez más seguramente en /usr/lib/systemd/system. Le añadimos la siguiente línea:
ExecStart=/ruta/al/script
En la sección [Service], justo después de la línea:
Type=oneshot
Que aparece en ambos.
Es rápido, duro, feo y seguramente traerá problemas. Pero funciona.
- Blog de vfmBOFH
- Entra a tu cuenta o crea una para poder comentar.
Usuario
# 123698 Si tienes los puntos de
Si tienes los puntos de montaje añadidos al fstab tendrían que generarse automáticamente, si no es que hay algún error en este punto.
Una búsqueda rápida por los internetes me ha llevado a aquí (aunque hay más resultados similares en foros de Arch y similares):
http://www.reddit.com/r/debian/comments/3am64l/shutdown_hangs_systemd_unmounting_items_in_wrong/csed4q3
Básicamente si quieres que el punto de montaje dependa de la red tienes que añadir _netdev a las opciones del punto de montaje y listos. Otra opción sería hacer tú mismo una unit, pero para qué...
BOFH
# 123704 Pofale
Pero si te lo paras a pensar, no es más que otra forma de arreglar la misma cagada. En Linux, Siempre Hay Más De Una Forma De Hacerlo Todo (tm).
Y, en otro orden de cosas, para los puntos de montaje puede servir (aunque tenga mis reservas para los MP que se monten como usuario, por ejemplo). Pero a ver cómo te lo montas para arreglar el temita de los servicios pillados.
Atentamente,
La voz ésa del interior de tu cabeza que oyes cuando lees algo.
DISCLAIMER: No tengo mucho tiempo para forear, así que voy al grano. Si crees que mi respuesta es ruda, seca, cortante o hiriente, no lo dudes: LO ES.
Usuario
# 123738 Pofueno
Ciertamente hay varias maneras de hacer la misma cosa, la buena y la tuya ;)
Ahora en serio, no sé por qué puñetas harían que los puntos de montaje de red no dependan de la red por defecto... imagino que alguna razón tendrían, o a lo mejor ha sido una cagada de campeonato, no lo sé. Desde luego parecería más lógico hacerlo al revés y añadir una opción para hacer que NO dependan de la red, pero en fin...
Respecto a los punto de montaje de los usuarios entiendo que no deberían ser un problema, ya que las sesiones de usuario deberían terminarse antes de empezar el resto del proceso de apagado, pero ciertamente no es algo que me haya puesto a probar.
Usuario
# 123700 Felicitaciones
Felicitaciones por investigar estas cosas. Resulta muy útil.
Estas cosas las tendría que agregar mageia a su distribución.
BOFH
# 123705 Por partes.
Yo no investigo por amor al arte. Me pagan por estas cosas ;-)
Por otro lado, no es algo que corresponda a Mageia solucionar. Si systemD es una puta cagada, que lo arreglen los que lo han cagado. Esto es un fallo que se distribuye por todas las distros. Es el software lo que falla, no la distro.
Atentamente,
La voz ésa del interior de tu cabeza que oyes cuando lees algo.
DISCLAIMER: No tengo mucho tiempo para forear, así que voy al grano. Si crees que mi respuesta es ruda, seca, cortante o hiriente, no lo dudes: LO ES.
BOFH
# 123709 Me lo apunto para cuando lo
Me lo apunto para cuando lo necesite.Como siempre información concisa y facil de consultar.
Gracias por compartir la solución a los problemas.
Saludos
Muy Suyo
Her DoctorBOFH
Usuario
# 123726 Muy Interesante
Hace algún tiempo no veía una entrada de nuestro estimado VMF... Siempre disfruto sus publicaciones, no solo por la gran cantidad de conocimiento que nos aportan, sino porque vienen escritas en un estilo muy suyo que mola...!!!
Saludos