web-dev-qa-db-fra.com

"Un travail de démarrage est en cours pour /etc/rc.local Compatibility": comment réparer?

Je viens de passer à Ubuntu Vivid (15.04) aujourd'hui, et après le redémarrage, j'ai connu un très long processus de démarrage. Mon ordinateur portable démarre généralement en 5 secondes ou moins, et maintenant, il n'avait pas fini même après quelques minutes.

Pressage Esc a montré l'écran suivant:

enter image description here

La dernière ligne indique "Un travail de démarrage est en cours d'exécution pour /etc/rc.local Compatibility (7 min 24 s/aucune limite)". Malgré la partie "no limit", il a abandonné (ou terminé?) Après exactement 10 minutes et le processus de démarrage s'est terminé.

Cela se produit à chaque démarrage.

Pourrait-il être lié à la transition vers systemd? Comment puis-je réparer cela? (En ce moment, j'y réfléchis à deux fois avant d'éteindre mon ordinateur portable). Dois-je signaler un bug? Et si oui, où?

Mon fichier /etc/rc.local:

#!/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

Le fichier est exécutable:

$ ls -l /etc/rc.local
-rwxr-xr-x 1 root root 333 aug 14  2013 /etc/rc.local

J'ai ajouté les 2 lignes fstrim il y a presque 2 ans, lorsque j'ai installé un disque SSD, en suivant les instructions de projet de astuces Linux simple .

Apparemment, c’est la cause de mon problème (je les ai supprimées et redémarrées - le problème avait disparu), mais je pense toujours que le système ne devrait pas être suspendu pendant 10 minutes. Aussi, comment puis-je exécuter fstrim au démarrage maintenant?

4
Cos64

Si vous mettez des commandes de longue durée dans rc.local, votre démarrage sera retardé. Vous devriez les envoyer à l’arrière-plan:

( fstrim -v /; fstrim -v /home ) &

Cela dit, vous n'êtes probablement pas obligé de le faire vous-même. Ubuntu 14.10 ajouté travail hebdomadaire pour fstrim .

6
muru

Étrange que ce soit soudainement un problème dans Ubuntu 15.04, alors que cela a toujours bien fonctionné pour vous dans Ubuntu 14.04 ....

Vous pouvez également ajouter un paramètre de veille avant l'ajustement, afin que les deux commandes d'ajustement soient exécutées après un nombre défini de secondes. Cela devrait permettre au processus de démarrage de se terminer, entraînant l'exécution des commandes de découpage en arrière-plan.

Comme ceci (délai de 40 secondes):

#!/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

Le paramètre -v (verbose) pour trim n'a dans ce cas aucune utilité, d'ailleurs, car il est exécuté en arrière-plan. J'ai également changé cela dans mon guide Easylinuxtips.

Note: J'ai seulement testé un tel paramètre de sommeil dans rc.local dans Ubuntu 14.04 et Linux Mint 17.x (dans un autre but que trim), je ne suis donc pas sûr que cela fonctionne de la même manière dans Ubuntu 15.04.

2
Pjotr

J'avais le même problème. En gros, cela se produit lorsqu'un élément de rc.local ne se termine pas normalement, par exemple un démon. Pour trouver quelle commande dans rc.local est le coupable, il suffit simplement de lancer une commande killall -9/from/etc.local et il redémarrera une fois que toutes les commandes de rc.local sont terminées.

1
Areeb Soo Yasir