Executar programa automaticamente na inicialização no linux ubuntu [closed]
140
Eu precisaria de um programa para ser executado toda vez que eu inicializar meu ubuntu linux. Então, eu precisaria adicioná-lo à minha lista de programas de inicialização. Apenas um problema: eu precisaria fazê-lo via terminal.
@Flexo Esta resposta não está presente em nenhum dos links que você forneceu. +1 a esta pergunta e resposta
Francisco Valdez
2
De fato, a resposta aqui é referenciada na primeira dessas perguntas.
Wilson F
4
Para uma maneira simples e portátil de fazer isso, você pode usar o Cron. Execute crontab -epara editar o crontab do usuário; adicione @reboot commandpara executar commandem cada inicialização.
appas 27/05
2
Eu não sei se é uma duplicata ou não, mas é o primeiro hit google ..
Agora o script deve iniciar na inicialização. Observe que esse método também funciona com links físicos e simbólicos ( ln).
Editar
Neste ponto do processo de inicialização, o PATH ainda não está definido, portanto, é fundamental que caminhos absolutos sejam usados por toda parte. MAS, como apontado nos comentários de Steve HHH, declarar explicitamente o caminho completo do arquivo ( /etc/init.d/filename) para o comando update-rc.d não é válido na maioria das versões do Linux. Per a página de manual para update-rc.d , o segundo parâmetro é um script localizado no /etc/init.d/*. Atualizado acima do código para refletir isso.
Outra Edição
Também como indicado nos comentários (por Charles Brandt), /filenamedeve haver um script no estilo init. Um bom modelo também foi fornecido - https://github.com/fhd/init-script-template .
Como apontado nos comentários (por Russell Yan), isso funciona apenas no modo padrão de update-rc.d.
De acordo com o manual do update-rc.d, ele pode ser executado em dois modos, "as máquinas que usam o modo legado terão um arquivo /etc/init.d/.legacy-bootordering"; nesse caso, você deve passar a configuração da sequência e do nível de execução através dos argumentos da linha de comando.
O argumento equivalente definido para o exemplo acima é
Assim como um FYI, a opção “defaults” coloca um link para iniciar o script em níveis de execução 2, 3, 4 e 5. (e coloca um link para parada em 0, 1 e 6.)
Dave Lasley
5
Eu apenas tentei isso no Ubuntu Server 12.04 LTS, mas no 12.04 você não pode ter o prefixo /etc/init.d. É só sudo update-rc.d filename defaults.
21712 Steve
1
@puk Ambos os links de disco rígido e links simbólicos irá trabalhar com este método
Dave Lasley
14
Só queria adicionar que / filename neste caso deve ser um script no estilo init. Aqui é um modelo para iniciar o seu próprio script de inicialização personalizado: github.com/fhd/init-script-template
crontab -e
para editar o crontab do usuário; adicione@reboot command
para executarcommand
em cada inicialização.Respostas:
Agora o script deve iniciar na inicialização. Observe que esse método também funciona com links físicos e simbólicos (
ln
).Editar
Neste ponto do processo de inicialização, o PATH ainda não está definido, portanto, é fundamental que caminhos absolutos sejam usados por toda parte. MAS, como apontado nos comentários de Steve HHH, declarar explicitamente o caminho completo do arquivo (
/etc/init.d/filename
) para o comando update-rc.d não é válido na maioria das versões do Linux. Per a página de manual para update-rc.d , o segundo parâmetro é um script localizado no/etc/init.d/*
. Atualizado acima do código para refletir isso.Outra Edição
Também como indicado nos comentários (por Charles Brandt),
/filename
deve haver um script no estilo init. Um bom modelo também foi fornecido - https://github.com/fhd/init-script-template .Outro link para outro artigo apenas para evitar possível apodrecimento do link (embora seja triste se o GitHub morrer) http://www.linux.com/learn/tutorials/442412-managing-linux-daemons-with-init-scripts
Outras edições
Como apontado nos comentários (por Russell Yan), isso funciona apenas no modo padrão de update-rc.d.
De acordo com o manual do update-rc.d, ele pode ser executado em dois modos, "as máquinas que usam o modo legado terão um arquivo
/etc/init.d/.legacy-bootordering
"; nesse caso, você deve passar a configuração da sequência e do nível de execução através dos argumentos da linha de comando.O argumento equivalente definido para o exemplo acima é
sudo update-rc.d filename start 20 2 3 4 5 . stop 20 0 1 6 .
fonte
sudo update-rc.d filename defaults
.