Como executar scripts shell como Systemd no Linux

Como executar scripts shell como Systemd no Linux

Systemd é um aplicativo de software que fornece uma variedade de componentes do sistema para sistemas operacionais Linux. É o primeiro serviço a inicializar a sequência de inicialização. Isso sempre funciona com PID 1. Isso também nos ajuda a gerenciar serviços de sistema e aplicativos em nosso sistema operacional Linux.

Também podemos executar qualquer script personalizado como serviço systemd. Ajuda o script a iniciar na inicialização do sistema. Isso pode ser útil para você executar qualquer script necessário para executar apenas na hora da inicialização ou para executar sempre.

Em nosso tutorial anterior, fornecemos instruções para executar um script python usando o Systemd. Este tutorial abrange a execução de um script de shell como um serviço Systemd.

Etapa 1 - Crie um script de shell

Primeiro de tudo, crie um script de shell de amostra, que precisa ser executado na inicialização do sistema. Você também pode criar um script de shell para executar sempre usando um infinito enquanto loop. O script continuará correndo até que o sistema diminua.

Crie um script de shell conforme os requisitos. Para fins de teste, estou criando um script de shell de amostra como/usr/bin/script.sh.

sudo nano/usr/bin/script.sh  

Adicionado o seguinte código de script de shell de amostra.

#!/BIN/BASH enquanto True faz // suas declarações vêm aqui dormindo 10 concluídas
1234567#!/BIN/BASH Enquanto TrueDo // suas declarações vêm aqui, durma 10done

Pressione Ctrl+O e pressione Enter para salvar as alterações. Então aperte Ctrl + x para sair do editor de nano.

Agora, faça o script executável:

sudo chmod +x/usr/bin/script.sh  

Para executar um script uma vez durante o tempo de inicialização do sistema não requer nenhum loop infinito. Em vez do script acima, você pode usar seu script shell para ser executado como um serviço Systemd.

Etapa 2 - Crie um arquivo de unidade Systemd

Em seguida, crie um arquivo de unidade de serviço para o Systemd em seu sistema. Este arquivo deve ter .serviço extensão e salva sob o subsídio /lib/systemd/system/ diretório

sudo nano/lib/systemd/system/shellscript.serviço  

Agora, adicione o seguinte conteúdo e atualize o nome do arquivo e localização do script. Você também pode alterar a descrição do serviço.

[Unidade] Descrição = meu script de shell [Service] ExecStart =/usr/bin/script.sh [install] wantedby = multiususer.alvo 

Salve o arquivo e feche-o.

Etapa 3 - Ative o novo serviço

Seu serviço de sistema foi adicionado ao seu serviço. Vamos recarregar o daemon systemctl para ler o novo arquivo. Você precisa recarregar esse daemon a cada vez depois de fazer alterações em .serviço arquivo.

SUDO SystemCTL Daemon-Reload  

Agora ative o serviço para iniciar a inicialização do sistema, também inicie o serviço usando os seguintes comandos.

SUDO SYSTEMCTL HILLAÇÃO.serviço  SUDO SYSTEMCTL STARTSCRIPT.serviço  

Por fim, verifique se o script está em funcionamento como um serviço Systemd.

shellscript de status de sudo systemctl.serviço  

A saída se parece com o abaixo:

Tudo feito!

Conclusão

Parabéns, você configurou com sucesso um script de shell para executar na inicialização do sistema. Isso pode ser útil para executar seus scripts personalizados necessários para começar na inicialização do sistema. Este tutorial ajudou você a configurar um script de shell como serviço systemd.