Acabo de actualizar a Ubuntu Vivid (15.04) hoy y, después del reinicio, experimenté un proceso de arranque muy largo. Mi computadora portátil generalmente arranca en 5 segundos o menos y ahora no había terminado ni siquiera después de unos minutos.
Al pulsar Escse mostró la siguiente pantalla:
La última línea dice "Se está ejecutando un trabajo de inicio para la compatibilidad de /etc/rc.local (7 min 24 s/sin límite)". A pesar de la parte "sin límite", se rindió (¿o se completó?) después de exactamente 10 minutos y el proceso de arranque finalizó.
Esto sucede en cada arranque.
¿Podría estar relacionado con la transición a systemd? ¿Cómo puedo arreglar esto? (Ahora mismo lo pienso dos veces antes de apagar mi computadora portátil). ¿Debo informar un error? Y si es así, ¿dónde?
Mi /etc/rc.local
archivo:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
fstrim -v /
fstrim -v /home
exit 0
El archivo es ejecutable:
$ ls -l /etc/rc.local
-rwxr-xr-x 1 root root 333 aug 14 2013 /etc/rc.local
Agregué las 2 fstrim
líneas hace casi 2 años, cuando instalé un SSD, siguiendo las instrucciones deProyecto de consejos fáciles para Linux.
Aparentemente estas son la causa de mi problema (las eliminé y reinicié; el problema desapareció), pero sigo pensando que el sistema no debería colgarse así durante 10 minutos. Además, ¿cómo puedo ejecutarlo fstrim
en el arranque ahora?
Respuesta1
Si ingresa comandos de ejecución prolongada rc.local
, su inicio se retrasará. Deberías enviar estos a un segundo plano:
( fstrim -v /; fstrim -v /home ) &
Dicho esto, probablemente no tengas que hacerlo tú mismo. Ubuntu 14.10 agregadoun trabajo semanal parafstrim
.
Respuesta2
Es extraño que esto de repente sea un problema en Ubuntu 15.04, mientras que siempre ha funcionado bien en Ubuntu 14.04...
También puede agregar un parámetro de suspensión antes del recorte, de modo que los dos comandos de recorte se ejecuten después de una cantidad determinada de segundos. Esto debería permitir que se complete el proceso de arranque, lo que provocará que los comandos de recorte se ejecuten en segundo plano.
Así (40 segundos de retraso):
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sleep 40
fstrim /
fstrim /home
exit 0
El parámetro -v (detallado) para recortar en este caso no tiene utilidad, por cierto, porque se ejecuta en segundo plano. También cambié eso en mi tutorial de Easylinuxtips.
Nota:Solo probé dicho parámetro de suspensión en rc.local en Ubuntu 14.04 y Linux Mint 17.x (para otro propósito además de recortar), por lo que no estoy seguro de si funcionará de manera similar en Ubuntu 15.04.
Respuesta3
Tuve el mismo problema, básicamente esto sucede cuando algo en rc.local no termina normalmente, como un demonio de algún tipo. Para encontrar qué comando en rc.local es el culpable, simplemente ejecute un comando killall -9/from/etc.local y se reiniciará una vez que finalicen todos los comandos de rc.local.