Podemos fazer um script iniciar automaticamente ao ligarmos o computador com Linux para que automatizarmos tarefas repetitivas. Isso é muito útil e tem outras vantagens, porém, para meu caso, é bastante útil para executar comandos toda vez que eu iniciar ou reiniciar o sistema.
Dos exemplos abaixo, o que mais gosto é o do crontab 🙂
Exemplo de script
iremos trabalhar com o script abaixo como exemplo. Ele estará em /usr/local/bin/meu_script.sh
#!/bin/bash # /usr/local/bin/meu_script.sh echo "Meu script iniciou em $(date)" >> /var/log/meu_script.log
Ao criar o script acima, dê à ele permissão de execução:
sudo chmod +x /usr/local/bin/meu_script.sh
Métodos de como iniciar script automaticamente
No Linux temos diversas maneiras de iniciar um script, ou comandos, automaticamente. Irei citar 3 modos.
Modo 01: Crontab com @reboot
#1 Editar o crontab do usuário Root. Se editar o seu crontab os comandos do script talvez não sejam executados por falta de permissão.
Execute,
sudo crontab -e
Digite,
@reboot /usr/local/bin/meu_script.sh
Pronto, toda vez que o computador iniciar o crontab iniciará automaticamente o nosso script
Modo 02: Usando SystemD
Systemd é o gerenciador de serviços padrão em muitas distros linux. podemos criar um serviço dentro do systemd para nosso script.
#1 edite o arquivo:
sudo nano /etc/systemd/system/meu_script.service
digite o conteúdo abaixo
[Unit] Description=Meu Script de Inicialização After=network.target [Service] ExecStart=/usr/local/bin/meu_script.sh Restart=always User=root [Install] WantedBy=multi-user.target
#2 Habilite o serviço para iniciar automaticamente no boot e inicie-o.
sudo systemctl enable meu_script.service
e
sudo systemctl start meu_script.service
Dica: veja também Samba: Usando Systemctl para Iniciar, Reiniciar e Parar
Modo 03: Adicionar ao Diretório /etc/init.d
No Debian e derivados, você pode colocar o script em /etc/init.d e usar update-rc.d para configurar a inicialização.
#1 Copie o script para dentro do diretório mencionado acima,
sudo cp /usr/local/bin/meu_script.sh /etc/init.d/meu_script
#2 Certifique que essa cópia possui permissão de execução
sudo chmod +x /etc/init.d/meu_script