Como escrever um serviço simples de sistema
- 1439
- 35
- Spencer Emard
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
- « As melhores distribuições Linux para iniciantes
- 10 melhores distribuições Linux leves para computadores mais antigos »