Após a atualização para o 16.04, o LTS rc.local não está executando um comando

21

Na versão instalada anterior, kubuntu 15.xx, adicionei uma linha /etc/rc.local- /home/diet/scripts/my-auto-mount-scriptque obviamente se refere a um script que, se estiver em unidades de rede wifi domésticas, deve ser montado.

Isso funcionou perfeitamente no kubuntu 15.xx

Após a atualização, parece que /etc/rc.localestá sendo ignorado na inicialização, porque a execução do comando /etc/rc.localainda parece fazer o truque. A razão pela qual acho que o rc.local está sendo ignorado é porque o script ao qual ele se refere deve produzir logs com êxito, mas também com falha no script, mas não há logs.

Alguém pode me dar algumas dicas sobre como solucionar esse problema?

PS: sim, eu sei que colocar coisas /etc/fstabtambém é uma maneira de montar as unidades, mas quando não estou em casa, odeio poder ver as unidades no golfinho e ter aquelas pequenas cruzes vermelhas porque não estão lá . Dessa forma, quando estou na estrada (é um laptop), as pessoas não conseguem ver o que tenho em casa.

Diet Bos
fonte
Relacionados: askubuntu.com/questions/919054/...
mook765

Respostas:

24

O Ubuntu agora está usando o systemd e o rc.local agora é considerado um serviço que está desativado por padrão. Você pode ativar o rc.local digitando o seguinte comando e reiniciando:

sudo systemctl enable rc-local.service
sshades
fonte
Muito obrigado por reservar um tempo para me fornecer uma solução! Eu também encontrei uma solução que adicionando o script a ./.config/autostart-scripts/ também executa o script na inicialização!
Diet Bos
O comando sysemctl funciona para mim. Observe também que isso é diferente dos scripts do usuário em ~ / .config / autostart-scripts, pois o /etc/rc.local deve ser executado no momento da inicialização, antes que qualquer usuário efetue login. Observe que quaisquer erros no script rc.local podem causar esse problema. parar; scan / var / syslog para rc.local, você acha que não funciona para você.
djb
1
E o systemd não suporta uma "maneira oficial" de executar scripts na inicialização? Como rc.local foi?
Cirelli94
4

apenas mude isso

chmod 755 /etc/init.d/rc.local

nano /etc/rc.local 

mude isso na primeira linha

#!/bin/sh -e

para

#!/bin/bash 

salve e divirta-se!

askopz
fonte
Perfeito, o combo com a resposta anterior funcionou para mim (16.04)
Yuriy Polezhayev
Esta resposta funcionou para mim, em vez da anterior, porque o Ubuntu 14.04 não possui systemctl
franksands 18/07