Como executar automaticamente comandos/scripts durante a reinicialização ou inicialização

Como executar automaticamente comandos/scripts durante a reinicialização ou inicialização

Sempre fico fascinado com as coisas acontecendo nos bastidores quando inicializo um sistema Linux e logo. Ao pressionar o botão liga / desliga em um metal nu ou iniciar uma máquina virtual, você coloca em movimento uma série de eventos que levam a um sistema totalmente funcional - às vezes em menos de um minuto. O mesmo acontece quando você efetua logoff e / ou desligar o sistema.

O que torna isso mais interessante e divertido é o fato de que você pode ter o sistema operacional executar certas ações quando ele inicializar e quando você logon ou logout.

Neste artigo distro-agnóstico, discutiremos os métodos tradicionais para atingir esses objetivos no Linux.

Observação: Vamos assumir o uso de Bash como shell principal para eventos de logon e logout. Se você usar um diferente, alguns desses métodos podem ou não funcionar. Em caso de dúvida, consulte a documentação do seu shell.

Executando scripts Linux durante a reinicialização ou startup

Existem dois métodos tradicionais para executar um comando ou executar scripts durante a inicialização:

Método #1 - Use um trabalho de Cron

Além do formato usual (minuto / hora / dia do mês / mês / dia da semana) que é amplamente usado para indicar um cronograma, o Cron Scheduler também permite o uso de @reinício. Esta diretiva, seguida pelo caminho absoluto para o script, fará com que ele funcione quando as botas da máquina.

No entanto, existem duas advertências nessa abordagem:

  1. a) O daemon Cron deve estar em execução (que é o caso em circunstâncias normais) e
  2. b) O script ou o arquivo crontab devem incluir as variáveis ​​de ambiente (se houver) que serão necessárias (consulte este thread StackOverflow para obter mais detalhes).

Método #2 - Use /etc /rc.d/rc.local

Este método é válido mesmo para distribuições baseadas em SystemD. Para que este método funcione, você deve conceder permissões de execução a /etc/rc.d/rc.local do seguinte modo:

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

e adicione seu script na parte inferior do arquivo.

A imagem a seguir mostra como executar dois scripts de amostra (/home/gacanepa/script1.sh e /home/gacanepa/script2.sh) usando um Cron trabalho e rc.local, respectivamente, e seus respectivos resultados.

script1.Sh:
#!/bin/bhash data = $ (data +'%f%h:%m:%s') dir =/home/gacanepa echo "Data e hora atuais: $ date"> $ dir/file1.TXT 
script2.Sh:
#!/bin/bash site = "Tecmint.com "dir =/home/gacanepa echo" $ rocks… adicione -nos aos seus favoritos."> $ Dir/file2.TXT 
Execute scripts Linux na inicialização

Lembre -se de que ambos os scripts devem receber permissões executadas anteriormente:

$ chmod +x/home/gacanepa/script1.sh $ chmod +x/home/gacanepa/script2.sh 

Executando scripts Linux no logon e logout

Para executar um script no logon ou logout, use ~.Bash_profile e ~.Bash_logout, respectivamente. Muito provavelmente, você precisará criar o último arquivo manualmente. Basta largar uma linha invocando seu script na parte inferior de cada arquivo da mesma maneira que antes e você está pronto para ir.

Resumo

Neste artigo, explicamos como executar o script no reinicialização, logon e logout. Se você puder pensar em outros métodos que poderíamos ter incluído aqui, fique à vontade para usar o formulário de comentário abaixo para apontá -los. Estamos ansiosos para ouvir de você!