A configuração seguinte irá discutir um exemplo básico de como executar um script shell durante um arranque no systemd Linux. Talvez haja várias razões para você querer executar um script shell durante a inicialização do Linux como, por exemplo, para iniciar um serviço personalizado em particular, verificar o espaço em disco, criar um backup, etc.
O seguinte exemplo abaixo servirá como um modelo básico a ser modificado mais tarde para se adequar às suas necessidades específicas. No exemplo abaixo vamos verificar um espaço em disco de um diretório /home/
durante um tempo de inicialização e escrever um relatório para o diretório /root/
.
Systemd service unit
Primeiro, precisamos criar um script de inicialização do systemd, por exemplo.disk-space-check.service
e colocá-lo no diretório /etc/systemd/system/
. Você pode encontrar o exemplo de um script de inicialização do systemd abaixo:
After=mysql.serviceExecStart=/usr/local/bin/disk-space-check.shWantedBy=default.target
- Depois: Encarrega o systemd de quando o script deve ser executado. No nosso caso o script será executado depois que a base de dados mysql for iniciada. Outro exemplo poderia ser
network.target
etc. - ExecStart: Este campo fornece um caminho completo do script a ser executado
- WantedBy: Em qual alvo de inicialização a unidade systemd deve ser instalada
O acima é um mínimo absoluto que nossa unidade de serviço systemd deve conter para executar nosso script no momento da inicialização. Para mais informações e opções a serem usadas veja systemd.service
página de manual:
$ man systemd.service
Cript shell de inicialização
Próximo, criamos nosso script shell personalizado para ser executado durante a inicialização do systemd. A localização e o nome do script já está definido pela unidade de serviço como /usr/local/bin/disk-space-check.sh
. O conteúdo do script pode ser simples como:
#!/bin/bashdate > /root/disk_space_report.txtdu -sh /home/ >> /root/disk_space_report.txt
O UAF Geophysical Institute, está procurando por um Analista de Sistemas Linux experiente para se juntar a sua equipe de analistas e engenheiros de infra-estrutura cibernética de pesquisa. LOCALIZAÇÃO: Fairbanks, Alaska, USA
APPLY NOW
Configurar e Instalar
Antes de reiniciarmos o nosso sistema, precisamos de tornar o nosso script executável:
# chmod 744 /usr/local/bin/disk-space-check.sh
A seguir, instale a unidade de serviço systemd e a habilite para que ela seja executada no momento do boot:
# chmod 664 /etc/systemd/system/disk-space-check.service# systemctl daemon-reload# systemctl enable disk-space-check.serviceCreated symlink from /etc/systemd/system/default.target.wants/disk-space-check.service to /etc/systemd/system/disk-space-check.service.
Se desejar testar o seu script antes de reiniciar o sistema:
# systemctl start disk-space-check.service# cat /root/disk_space_report.txt Thursday 7 July 11:30:25 AEST 20161.5G /home/
Tudo pronto. Após reiniciar seu sistema Linux a unidade systemd acima irá invocar o script da shell para ser executado durante o tempo de inicialização.