Como escrever um serviço simples de sistema

Como escrever um serviço simples de sistema

Objetivo

Escreva um serviço BASIC SYSTEMD.

Distribuições

Isso funcionará em qualquer distribuição em execução do Systemd.

Requisitos

Uma instalação do Linux em funcionamento com privilégios Systemd e raiz.

Convenções

  • # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
  • $ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Introdução

Systemd é quase inevitável. Ele permeou tantos aspectos do ecossistema Linux que é necessário para qualquer administrador do Linux saber pelo menos o básico de como funciona.

Um dos principais pontos de venda do Systemd é a facilidade de escrever arquivos de serviço. Eles não são scripts. Em vez disso, eles são arquivos básicos de configuração. Embora possam crescer para serem complexos, geralmente são muito simples.

Crie o arquivo

Os serviços Systemd existem em /etc/Systemd/System. Se você olhar no seu sistema, eles estão todos lá. Na verdade, abra sshd.serviço. Escaneie e veja o que está lá. Você provavelmente não saberá tudo, mas certamente pode entender um pouco e reconhecer o quão simples é.

Qualquer .serviço arquivo que você cria nesse diretório pode ser executado como um serviço, se você o construir corretamente.

Crie um arquivo que você gostaria com o .serviço extensão.

Unidade

A primeira seção que você precisa escrever é o [Unidade]. Para um serviço básico, tudo o que você precisa é uma descrição básica do seu serviço. Comece dessa maneira.

[Unidade] Descrição = um pouco sobre seu serviço

Serviço

O [Serviço] O bloco é a maior parte do conteúdo da configuração. Este é o bloco que contém as diretivas que dizem ao serviço como e onde correr.

Crie o bloco. A primeira coisa que você precisa estabelecer é o tipo de serviço que é. Este é apenas um serviço simples, então diga ao Systemd que.

Tipo = simples

Este próximo bit é provavelmente o mais importante. Você precisa dizer ao Systemd o que executar. Este é realmente um comando regular ou uma chamada para um script. Dê uma olhada no exemplo.

Execstart =/opt/scripts/run-backup.sh --full--para-external

Obviamente, você não tem esse script, mas pode ver como usaria o mesmo tipo de comando que normalmente executaria.

Systemd também é muito capaz de reiniciar os serviços com falha. Este é outro parâmetro que você pode definir nessa configuração. Se você quiser reiniciar quando falhar, tente o seguinte.

Reinicie = falha

Também pode ser útil especificar um arquivo PID para o seu serviço, se exigir um.

Pidfile =/tmp/yourService.PID

Se você quiser ou precisar de um usuário ou diretório específico para trabalhar, também pode fazer isso.

Usuário = Srvuser WorkingDirectory =/Var/YourseVerce

Você também pode definir um diretório de tempo de execução e as permissões de arquivo desse diretório enquanto estiver em uso.

Runtimedirectory = yourseVice runtimedirectoryMode = 0755

Há muito mais que você pode fazer, mas com esses princípios básicos, você poderá montar seus próprios serviços simples e trabalhar com os existentes.

Instalar

Finalmente, há o [Instalar] bloquear. Tudo o que você precisa fazer aqui é especificar como seu serviço deve ser ativado. A maneira mais comum de fazer isso é com multi usuário.alvo.

[Install] wantedby = multiususer.alvo

Pensamentos finais

Isso é tudo aqui é para o básico. Você certamente pode fazer e modificar serviços básicos e até um pouco mais avançados. Felizmente, você ganhará mais confiança trabalhando com o Systemd e se sentirá mais confortável criando seus próprios arquivos de serviço com mais experiência.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Comandos Linux: os 20 comandos mais importantes que você precisa para…
  • Download do Linux
  • Melhor distro Linux para desenvolvedores
  • OpenLitesPeed Instalação no Linux
  • Arquivos de configuração do Linux: os 30 primeiros mais importantes
  • MX Linux vs Ubuntu
  • Linux pode obter vírus? Explorando a vulnerabilidade do Linux…
  • Comandos básicos do Linux