Como instalar um script init.d?

71

Estou tentando instalar um script init.d, para executar o aipo para agendar tarefas. Aqui estão os passos que segui:

  • copiou o arquivo aipo e colou na pasta /etc/init.d/
  • criou um arquivo de configuração celeryd na pasta / etc / default /

agora quando eu tentei iniciá-lo sudo /etc/init.d/celeryd start, ele lança errosudo: /etc/init.d/celeryd: command not found

Eu pesquisei no Google como instalar o init.d, recebi esta pergunta SO .

diz para emitir um uname -ae quando eu recebo isso:

Linux capsonesystem8-desktop 3.2.0-43-generic-pae 
#68-Ubuntu SMP Wed May 15 03:55:10 UTC     
2013 i686 i686 i386 GNU/Linux

e também diz que use utils como insservativar o script init.d, então tentei:

insserv /etc/init.d/celeryd mas lança erro insserv: command not found

então eu tentei instalar o insserv sudo apt-get install insserv . mas diz já instalado:

insserv is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 222 not upgraded.

Então, como instalar o script init.d? Qualquer ajuda será apreciada.

update1:

quando tentei:

$ sh -x /etc/init.d/celeryd start

isso revela alguns errors. pode ser por isso que o serviço não será iniciado.

update2:

Eu limpei todos os erros ao executar, $ sh -x /etc/init.d/celeryd startmas ainda sudo /etc/init.d/celeryd startgera command not founderro

suhailvs
fonte
Não tenho tempo para uma resposta agora, mas, se você quiser que isso seja executado como parte da sua inicialização, acho que você precisará adicionar links ao seu script nos vários diretórios de nível de execução, para que o Linux lide com a inicialização e a parada por você. (/etc/rc[0-6orgeous.d) Esse processo está sendo gradualmente substituído por um método mais novo (acho que é chamado de inicial), mas não investiguei nada. O link na sua postagem aborda parte disso.
21413 Joe

Respostas:

55

Seu celerydscript provavelmente não é executável, é por isso que sudo /etc/init.d/celerydestá retornando command not found. Portanto, você precisa primeiro torná-lo executável.

Para fazer isso, execute os seguintes comandos:

sudo chmod 755 /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd

A primeira linha altera as permissões para -rwxr-xr-xe a segunda linha garante que o proprietário e o proprietário do grupo sejam root.

Feito isso, presumo que você precisará usar sudo /etc/init.d/celeryd startpara iniciar o daemon.

Alaa Ali
fonte
70

Quando você copia o script no lugar, não se esqueça de torná-lo executável e de propriedade do root:

sudo chmod +x /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd

Depois de instalar isso, você pode configurá-lo para iniciar automaticamente na inicialização com:

sudo update-rc.d celeryd defaults
sudo update-rc.d celeryd enable
David Purdue
fonte
Esta seria considerada a melhor resposta, causa de apontar para update-rc.d.
precisa saber é o seguinte
3

Se você receber o command not founderro ao executar insserv, poderá corrigi-lo executando o seguinte comando:

sudo ln -s /usr/lib/insserv/insserv /sbin/insserv

Então veja insserv -hou man insservpara obter ajuda.

Além disso, você pode tentar com:

sudo update-rc.d celeryd defaults

Fonte: https://askubuntu.com/a/334043/147044

Radu Rădeanu
fonte
1

Esta é a sequência de comandos para iniciar automaticamente seu daemon no momento da inicialização:

sudo cd /etc/init.d
sudo chown root:root celeryd
sudo chmod 755 celeryd
sudo ln -s /usr/lib/insserv/insserv /sbin/insserv
sudo insserv celeryd
Oleg Bondar '
fonte