“Um job de início está sendo executado para /etc/rc.local Compatibility”: como corrigir?

4

Acabei de atualizar para o Ubuntu Vivid (15.04) hoje e, após a reinicialização, experimentei um processo de inicialização muito longo. Meu laptop geralmente é inicializado em 5 segundos ou menos, e agora não tinha terminado nem depois de alguns minutos.

Pressionar Esc mostrou a seguinte tela:

A última linha diz "Um trabalho de início está sendo executado para /etc/rc.local Compatibilidade (7 min 24s / sem limite)". Apesar da parte "no limit", desistiu (ou completou?) Após exatamente 10 minutos, e o processo de boot terminou.

Isso acontece em todas as inicializações.

Poderia estar relacionado com a transição para o systemd? Como posso consertar isso? (Agora, acho que duas vezes antes de desligar meu laptop). Devo reportar um bug? E se sim, onde?

Meu arquivo /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

O arquivo é executável:

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

Eu adicionei as linhas 2 fstrim há quase 2 anos, quando instalei um SSD, seguindo as instruções de Projeto de dicas do Linux Fácil .

Aparentemente, estas são a causa do meu problema (eu as removi e reiniciei - o problema desapareceu), mas eu ainda acho que o sistema não deve ficar assim por 10 minutos. Além disso, como posso executar fstrim na inicialização agora?

    
por Cos64 01.05.2015 / 10:42

3 respostas

6

Se você colocar comandos de longa execução em rc.local , sua inicialização será atrasada. Você deve enviá-los para o fundo:

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

Dito isto, você provavelmente não precisa fazer isso sozinho. O Ubuntu 14.10 adicionou um trabalho semanal para fstrim .

    
por muru 02.05.2015 / 08:40
2

Estranho que isso de repente seja um problema no Ubuntu 15.04, ao passo que sempre funcionou bem para você no Ubuntu 14.04 ....

Você também pode adicionar um parâmetro sleep antes do trim, para que os dois comandos trim sejam executados após um número definido de segundos. Isso deve permitir que o processo de inicialização seja concluído, fazendo com que os comandos de ajuste sejam executados em segundo plano.

Assim (atraso de 40 segundos):

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

O parâmetro -v (verbose) para o trim tem, neste caso, nenhum uso, a propósito, porque está sendo executado em segundo plano. Eu mudei isso em minhas instruções do Easylinuxtips também.

Nota: eu testei apenas um parâmetro de sono como rc.local no Ubuntu 14.04 e no Linux Mint 17.x (para outra finalidade que não seja o trim), então não tenho certeza se funcionará de forma semelhante no Ubuntu 15.04.

    
por Pjotr 06.05.2015 / 10:56
1

Eu tive o mesmo problema, basicamente isso acontece quando algo em rc.local não termina normalmente, como um daemon de algum tipo. Para descobrir qual comando em rc.local é o culpado simplesmente para um comando killall -9 / from / etc.local e ele será reinicializado assim que todos os comandos de rc.local forem finalizados.

    
por Areeb Soo Yasir 20.03.2016 / 08:12