Serviços bem conhecidos no Linux podem ser adicionados no momento do boot sem problemas, porque a maioria deles vem com seu próprio script, que é feito usando comandos ‘chkconfig’ e ‘systemctl’.

Por exemplo, para adicionar o serviço ‘Apache httpd’ na inicialização, rode um dos seguintes comandos baseado no seu gerenciador de sistema. Similarmente você pode adicionar qualquer serviço bem conhecido como requerido na inicialização.

Para sistema de inicialização do Sys V:

# chkconfig --level 35 httpd on

Para sistemad:

# systemctl enable httpd

Por vezes você pode precisar adicionar um script personalizado ou comando ou serviço na inicialização/boot. Se sim, como fazê-lo?

Neste artigo, vamos entender como usar os três métodos seguintes para implementá-lo:

  • Using /etc/rc.d/rc.local file
  • Usando o arquivo crontab
  • systemd service unit

Método-1: Usando o arquivo /etc/rc.d/rc.local

O “/etc/rc.local” é tradicionalmente executado após todos os serviços normais de computador terem sido iniciados no final do processo de mudança para um runlevel multiusuário.

Este método também funciona no sistema systemd, e você precisa adicionar a localização do seu script ao arquivo ‘/etc/rc.d/rc.local’ para executar no boot.

Certifique-se de que o arquivo tem permissão de execução executável.

# chmod +x /etc/rc.d/rc.local

Para entender isso em detalhes, vamos criar um script simples como mostrado abaixo, mas você pode criar qualquer script conforme necessário:

# vi /opt/scripts/run-script-on-boot.sh#!/bin/bashdate > /root/on-boot-output.txthostname > /root/on-boot-output.txt

Após o script estar pronto, defina a permissão do executável como mostrado abaixo:

# chmod +x /opt/scripts/run-script-on-boot.sh

Finalmente adicione o script ao fundo do arquivo:

# vi /etc/rc.d/rc.local/opt/scripts/run-script-on-boot.sh

Reinicie seu sistema para verificar isso:

# reboot

Método-2: Usando o arquivo crontab

cron executa trabalhos agendados automaticamente no backend em um horário específico.

Isso pode ser facilmente realizado usando uma string especial chamada "@reboot" com cron job.

@reboot é uma string especial e permite que o usuário execute qualquer comando ou script na inicialização (tempo de inicialização).

Este exemplo executa o ficheiro ‘/opt/scripts/run-script-on-boot.sh’ no reinício do sistema.

Usaremos o mesmo script que foi criado no exemplo acima. Para fazer isso, basta adicionar a seguinte entrada no arquivo crontab:

# crontab -e@reboot /opt/scripts/run-script-on-boot.sh

Reinicie seu sistema para verificar isto:

# reboot

Método-3: Usando systemd service unit

Este método só funciona no sistema systemd e é muito simples.

Para fazer isso, você precisa criar um script de inicialização do systemd e colocá-lo no diretório “/etc/systemd/system/”.

Este é o nosso exemplo de script de inicialização da unidade systemd:

# vi sample-on-boot-script.serviceDescription=Run a Custom Script at StartupAfter=default.targetExecStart=/opt/scripts/run-script-on-boot.shWantedBy=default.target

Após colocar o script da unidade no local systemd, execute o seguinte comando para atualizar os arquivos de configuração do systemd e habilitar o serviço:

# systemctl daemon-reload# systemctl enable sample-on-boot-script.service

Reinicie o seu sistema para verificar isto:

# reboot

Dicas de Bónus:

Se quiser executar um script em segundo plano, precisa de adicionar o símbolo de amperes e o símbolo "&".

/Path/To/My_Script &

Se você quiser executar o comando como um usuário diferente, use o seguinte formato:

su - $USER -c /Path/To/My_Script

Conclusão

Este tutorial discute brevemente como adicionar um script personalizado ou comando ou serviço na inicialização.

Deixe uma resposta

O seu endereço de email não será publicado.