Estou configurando uma cota no meu servidor Linode executando o Ubuntu 16.10 e recebo o seguinte erro
Não é possível montar o dispositivo montado stat () / dev / root: esse arquivo ou diretório não existe
Então, para corrigir isso, cheguei a este segmento para a correção que é feita adicionando
ln -s /dev/xvda /dev/root
/etc/init.d/quota restart
para o /etc/rc.local
. Mas o Ubuntu 16.10 não usa rc.local
mais, em vez disso, usa systemd . Qual é a alternativa para rc.local
: Como executar os comandos acima na inicialização?
Também habilitei o serviço usando, systemctl enable rc-local.service
mas não funcionou para mim. Qualquer vantagem seria apreciada.
Respostas:
Introdução
Eu acho que você não deve criar um novo serviço, conforme sugerido no link por George. O
rc-local.service
já existe no systemd e o arquivo de serviço sugere que orc.local
, se existir e for executável, é puxado automaticamente para dentromulti-user.target
. Portanto, não há necessidade de recriar ou forçar algo que é feito de outra maneira pelosystemd-rc-local-generator
.Uma solução
Uma solução rápida (não sei se essa é a maneira canônica):
Em um terminal, faça:
Depois disso
rc.local
, será chamado na inicialização do sistema. Insira o que você deseja.fundo
Se você faz em um terminal:
Você pode ver que o comentário principal contém linhas como:
Isso indica que, neste sistema, se houver um arquivo chamado
/etc/rc.local
executável, ele será automaticamente puxado para o multiusuário.target. Então você apenas cria o arquivo de acordo (sudo touch...
) e o torna executável (sudo chmod +x ...
).fonte
#!/bin/bash
Porém, não use , a#!/bin/sh
menos que você realmente precise do bash em seu script. Todos os outros scripts do sistema usam o traço, não o bash, por motivos de desempenho.rc-local
não permite encomendá-lo depois de outra unidade, não é?Eu vi essa solução sugerida, que envolve o uso de
systemd
aqui :Crie um serviço:
Adicione seu código lá:
Crie e verifique se
/etc/rc.local
é executável e adicione este código dentro dele:Habilite o serviço:
Inicie o serviço e verifique o status:
Se tudo correr bem, você pode adicioná
code
-lo ao/etc/rc.local
arquivo e reiniciá-lo.Nota: Testado no Lubuntu 16.10.
Fonte:
https://www.linuxbabe.com/linux-server/how-to-enable-etcrc-local-with-systemd
fonte
touch "hello"
antes doexit 0
. O serviço parece estar ativo, mas não cria nenhum arquivo no / etc / dir Rodando no ubuntu 16.04 Arabian 5.31Para adicionar à resposta de Jan que, diferentemente do
rc.local
arquivo usual ,rc-local service
é executado não depois que todos os serviços foram iniciados, mas depois que a rede fica on-line.Em alguns casos, você pode querer executar comandos
rc.local
posteriormente. Por exemplo, eu queria que fosse executado após olxd
início.Nesse caso, você pode editar as
rc-local service
dependências de inicialização criando um arquivo conf drop-in:/etc/systemd/system/rc-local.service.d/override.conf
com o conteúdo:Onde você pode adicionar um nome de unidade necessário (como eu adicionei
lxd.service
)Não se esqueça de
systemctl daemon-reload
depois disso.fonte