Executar comando na inicialização como root


9

Eu preciso executar um script bash no momento da inicialização como superusuário no Xubuntu. Não sei por onde começar. Eu tenho que fazer algo descrito em um guia do Arch Linux. Esse guia diz exatamente:

Adicione o seguinte no final do arquivo: /etc/rc.sysinit

# Do my action
/etc/rc.d/do_my_action

/bin/dmesg >| /var/log/dmesg.log

Mas eu não tenho /etc/rc.sysinite /etc/rc.d/no Xubuntu. Tenho certeza de que existem equivalentes, certo?

Respostas:


9

O arquivo que você deseja é /etc/rc.local. Este script será executado próximo ou no final do processo de inicialização. Assim, tudo deve estar pronto a essa hora.

No entanto, como o @ bodhi.zazen apontou, o Upstart pode ser a melhor opção para você. Confira .

Nota 1 : no 15.04 e posterior, o Ubuntu usa systemde não o Upstart. Portanto, se você quiser adotar uma abordagem de serviço, consulte esta resposta aqui por @muru

Nota 2 : No 16.10, não existe /etc/rc.localpor padrão, mas se você o criar e o tornar executável ( sudo chmod u+x /etc/rc.local), ele funcionará porque há um serviço systemd para puxá-lo, se existir. Não se esqueça de colocar uma linha exit 0no final do arquivo para impedir que quaisquer comandos com falha causem a interrupção de todo o processo de inicialização.


Então, eu só tenho que colocar esse código aqui? Por enquanto, esse arquivo contém apenas exit 0. E se eu puder perguntar, na inicialização, quando rc.localexecutado, o sistema de arquivos está pronto para que eu também possa gravar um log em algum lugar do comando que quero executar?
lorenzo-s

Parece que você está tentando executar um script de inicialização (init). O Ubuntu usa o iniciante. O rc.local executará um comando ou uma série de comandos na inicialização e pode ou não ser sua melhor opção. O que você está tentando fazer exatamente ?
Panther

@ Lorenzo-s: Veja minha edição.
Scott Severance

Você também pode encontrar esta resposta útil: askubuntu.com/a/20347/3940
Takkat

1
Ok, eu resolvi passar my_scriptde /usr/local/binpara /usr/bin. Também posso salvar o logon /var/logusando my_script &>> /var/log/my_script. Muito obrigado.
Lorenzo-s
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.