Como executar automaticamente scripts na inicialização do SystemD Linux

Publicado por diego santana em 09/01/2017

[ Hits: 22.689 ]

 


Como executar automaticamente scripts na inicialização do SystemD Linux



Aqueles que trabalham com Linux a algum tempo sabem que é essencial executar scripts na inicialização, seja um script de firewall, limpeza de algum diretório, script de backup etc, as possibilidades são infinitas.

SYSTEMD SERVICE UNIT

Primeiro crie um script de inicialização systemd chamado "disk-space-check.service" com o conteúdo abaixo e coloque dentro do diretório /etc/systemd/system/:

[Unit]
After=mysql.service

[Service]
ExecStart=/usr/local/bin/disk-space-check.sh

[Install]
WantedBy=default.target

  • After: instrui o systemd quando o script deverá ser executado. No nosso caso, o script executará depois que o serviço mysql estiver sido inicializado.
  • ExecStart: este campo exige o caminho completo até o script a ser executado.
  • WantedBy: o alvo de boot ao qual o systemd unit deverá ser instalado.

As opções configuradas acima são o mínimo que o systemd necessita para executar o script na inicialização do sistema. Para mais informações e opções a serem utilizadas veja systemd.service nas páginas de manual.

SCRIPT A SER EXECUTADO

Agora nós criaremos o script para ser executado durante o boot time do systemd. A localização e o nome do script já está definido no service unit criado anteriormente, "/usr/local/bin/disk-space-check.sh". O conteúdo do script é bem simples:

#!/bin/bash

date > /root/disk_space_report.txt
du -sh /home/ >> /root/disk_space_report.txt

CONFIGURAÇÃO E INSTALAÇÃO

Antes de dar um reboot no sistema temos que tornar o script executável, digite o seguinte comando:

# chmod +x /usr/local/bin/disk-space-check.sh

Instale o service unit criado no passo 1 para que ele possa ser executado na inicialização.

# chmod 664 /etc/systemd/system/disk-space-check.service
# systemctl daemon-reload
# systemctl enable disk-space-check.service


Created symlink from /etc/systemd/system/default.target.wants/disk-space-check.service to /etc/systemd/system/disk-space-check.service.

Se você quiser testar o script antes de reinicializar o sistema execute o seguinte comando:

# systemctl start disk-space-check.service
# cat /root/disk_space_report.txt
Thursday 7 July  11:30:25 AEST 2016
1.5G    /home/

Tudo pronto. Depois de reinicializar seu sistema Linux, o systemd invocará o shell script criado e executará no boot time.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Shell script pós-instalação para CentOS 7 - Uso: Workstation

Instalação e configuração do Bind9 no CentOS 5.5 64 bits

Uma introdução aos sistemas de inicialização: BSD x System V

Comandos básicos que você precisa aprender para usar o terminal no Ubuntu

Backups no Zimbra

  

Comentários
[1] Comentário enviado por MrBlackWolf em 31/01/2017 - 09:39h

O systemd seria ótimo se não fosse guloso hahahahahahaha.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts