Como criar o script de inicialização init.d

8

Eu só quero executar um comando muito simples na inicialização. Como eu posso fazer isso? Eu pesquisei no google e ele tem exemplos muito complicados, mas o que eu preciso é apenas executar esse script na inicialização. Como eu posso fazer isso?

Roteiro

./init.d/opscenter-agent start

sed
fonte

Respostas:

8

Se você quiser fazer isso como inicialização do sistema (ao contrário de quando fizer login no seu computador), insira os comandos que deseja executar /etc/rc.local.

Veja [Ubuntu] Executando um script na inicialização e desligamento .

Li-aung Yip
fonte
O OP pediu especificamente um script init.d, o que realmente não é. É uma abordagem relacionada, principalmente pelo fato de ter sido o que fizemos há 30 anos, e mais ou menos nunca o faz agora, graças a abordagens mais recentes, como init.d. (que, por sua vez, está sendo descontinuado em favor do / etc / init do systemd).
Mc0e
3

Se o script não precisar ser executado pela raiz, você pode fazer o seguinte:

1) Abra "Preferências de aplicativos de inicialização" ( Alt+ F2e cole gnome-session-propertiese pressione Enter),

2) Pressione "Adicionar" e selecione seu script:

insira a descrição da imagem aqui

insira a descrição da imagem aqui


Se você não estiver usando um ambiente gráfico, você pode colocar os comandos apenas antes da linha exit 0neste arquivo: /etc/rc.local. (Para editá-lo, basta colar no terminal sudo nano /etc/rc.local.

desgua
fonte
Não é bom desde que eu estou usando Putty, a fim de gerenciar servidor Debian, sem GUI :)
sed
Você pode colocar os comandos (ou um link para o script) neste arquivo:/etc/rc.local
desgua
Essa é uma alternativa ao script init.d solicitado pelo OP.
Mc0e
1

A abordagem /etc/rc.local 'executará um comando muito simples na inicialização', mas não é uma abordagem de script init.d, e é de várias maneiras inferior. (Isso pode não importar, dependendo do seu propósito).

Diferentemente dos scripts init.d, os comandos rc.local não oferecem uma interface padrão para iniciar e parar um processo e não oferecem muita capacidade de influenciar quando no processo de inicialização são executados. Você pode ver no /etc/init.d/rc.localscript que isso é executado depois de todo o resto ( Required-Start: $all).

Se um script init.d realmente é o que você deseja, geralmente apenas pegar um script existente, copiá-lo e editá-lo funciona bem, embora alguns scripts existentes tenham mais complexidade do que você deseja. Desde que é assim que a maioria dos scripts init.d é iniciada, o ubuntu fornece /etc/init.d/skeleton para esse propósito.

Também vale uma olhada:

  • /etc/init.d/motdé um exemplo mínimo que executa algo na inicialização, mas com a Required-Startconfiguração de parâmetro quando isso deve acontecer.
  • /etc/init.d/croné um ponto de partida simples para um processo daemon (fornece ou aceita a parse_environmentfunção, da qual você provavelmente não precisa).
mc0e
fonte