Ubuntu - execute o comando na inicialização com “sudo”


90

Eu gostaria de executar um sudocomando quando o Ubuntu iniciar (antes que alguém faça login):

sudo searchd

Como eu faria isso?

Respostas:


194

Você pode adicionar o comando no /etc/rc.localscript que é executado no final da inicialização.

Escreva o comando antes exit 0. Qualquer coisa escrita depois exit 0nunca será executada.


38
Antes, com certeza. Qualquer coisa escrita depois exit 0nunca será executada.
— Didier Trosset

Oi eu também tenho um comando rvmsudo para ser executado na mesma situação. o comando normalmente solicitaria a senha. Haverá problemas se eu colocar o comando diretamente em /etc/rc.local?
— ravi1991

@fmonegaglia Depende. Se você deseja que o comando seja iniciado e o script espera que ele termine antes de continuar com o próximo comando no script, não &. Se você deseja que o comando a seguir seja iniciado mesmo que o atual não tenha sido concluído, adicione a &.
— Didier Trosset

@NoOne Verifique os direitos de acesso neste arquivo para o usuário atual. Iniciar o comando do editor com sudo pode resolver o problema.
— Didier Trosset

1
Claro que existe e sim, eu configurei o bit executável. Ao tentar habilitar o serviço, só recebo The unit files have no installation config (WantedBy, RequiredBy, Also, Alias settings in the [Install] section, and DefaultInstance for template units) […].algum conselho sobre isso?
— oarfish de

9

Edite a configuração tty /etc/init/tty*.confcom um shellscript como parâmetro:

(...)
exec /sbin/getty -n -l  theInputScript.sh -8 38400 tty1
(...)

Isso pressupõe que estamos editando tty1 e o script que lê a entrada é theInputScript.sh.

Uma palavra de advertência: este script é executado como root, então quando você está inserindo coisas nele, você tem privilégios de root. Anexe também um caminho para a localização do script.

Importante: o script quando terminar, deve invocar o / sbin / login, caso contrário você não conseguirá fazer o login no terminal.


1
esta resposta foi muito útil para mim ao construir nosso dispositivo de produto, muito obrigado
— José F. Romaniello

0

Boas respostas. Você também pode definir tarefas (ou seja, comandos) com " Crontab " para obter mais flexibilidade (que oferece diferentes opções para executar scripts, registrar as saídas, etc.), embora exija mais tempo para ser entendido e definido corretamente:

Usando '@reboot' você pode executar um comando uma vez, na inicialização.

Concluindo : corra$ sudo crontab -e -u root

E adicione uma linha no final do arquivo com seu comando da seguinte maneira:

@reboot sudo searchd
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.