Como executar um script na inicialização do CentOS Linux

13

Eu coloquei um script /etc/init.d/abc.sh. Agora eu quero que ele seja executado na inicialização.

Como posso fazer isso com o chkconfig?

chkconfig --add abc.sh

Mas não tenho certeza de como isso funciona.

Miragem
fonte
Há um artigo antigo, mas ainda útil na linuxjournal.com/article/4445
RedGrittyBrick

Respostas:

8

Costumo usar

/etc/rc.local

Então, tipo ...

echo "/etc/init.d/abc.sh" >> /etc/rc.local

deve cortá-lo para você. Provavelmente existem lugares mais adequados, mas o que quer que seja, na maioria das distros, parece.

James T Snell
fonte
esse script é um daemon e eu tenhoabc start stop restart configurd
Mirage
Talvez você queira chamá-lo digitando: 'service abc start'
James T Snell
7

Os scripts executados na inicialização não são considerados um script - se você deseja que o script seja executado na inicialização, altere o seguinte em /etc/crontab:

@reboot /path/to/script
saravanakumar
fonte
11
Seria executado como usuário root se colocado no cron?
Kimberly W
2
Essa é uma ideia brilhante! É portátil e simples. Não prejudica a inicialização. Ele vem após o sistema de módulos de arranque com permissões de usuário precisos .... No meu caso em centos 7, seria "@reboot root / path / to / script"
Nicolas Guérinet
2

Veja outros scripts init existentes. Em todo script init do estilo rh, há três dicas: os níveis de execução, onde o script deve ser iniciado e a prioridade na qual deve ser iniciado / interrompido. A soma do início + parada deve ser normalmente 100.

Esta linha de comentário é avaliada pelo chkconfig.

Nils
fonte
1

Você não pode, a menos que leia /usr/share/doc/initscripts-*/sysvinitfilese estruture seu script de acordo.

Ignacio Vazquez-Abrams
fonte
1

Você está no caminho certo. Seu script bash está no local certo e você o adicionou ao seu chkconfig, o que significa que seu script está instalado.

Observe que /etc/init.dé um link simbólico para/etc/rc.d/init.d

Depois de adicionar seu script, você precisa selecionar em qual nível de execução você deseja ativá-lo: chkconfig --level 35 abc onativará seu script nos níveis de execução 3 e 5, suas startups mais comuns.

Por favor, consulte chkconfig --helppara mais informações.

PS. você também pode usar o ntsysvque é um tui para chkconfig.

Dejan
fonte