Como criar e gerenciar serviços de usuário no Linux

Como Criar E Gerenciar Servicos De Usuario No Linux



Um usuário normal do Linux pode criar um serviço systemd personalizado. Embora os serviços systemd sejam amplamente gerenciados por administradores de sistema usando o comando systemctl. O mesmo comando também pode ser usado para gerenciar serviços específicos do usuário; tudo que você precisa é de um -do utilizador bandeira.

Neste guia, abordarei como criar um serviço específico do usuário no Linux e como gerenciá-lo usando systemctl.

Razão para ter um serviço de usuário normal

O serviço normal do usuário é diferente do serviço do sistema. O serviço de usuário normal é centrado no usuário conectado. Este serviço só funcionará na sessão do usuário que o criou.







Como criar um serviço de usuário normal

Os serviços específicos do usuário no Linux são colocados no ~/.config/systemd/user diretório. Se este diretório não estiver presente, ele poderá ser criado.

mkdir -p ~ / .config / sistema / do utilizador

O -p flag é usado para criar um diretório pai, se necessário. O ~ indica o diretório inicial do usuário local e é equivalente a /home/usuário enquanto o ponto antes do arquivo de configuração o oculta. Vamos criar um arquivo de script bash simples que gravará o uso de memória em um texto a cada 30 minutos. Estou criando o script com o nome de script.sh .

#! /bin/bash

enquanto verdadeiro

fazer

livre -m >> / lar / do utilizador / meuarquivo.txt

dormir 1800

feito

Este script pode ser criado em qualquer lugar, mas certifique-se de que o caminho especificado dentro do script seja um caminho absoluto.

Agora, vamos criar um serviço que executará o script acima em segundo plano. Inicie qualquer editor de texto, como Nano ou Vim, e cole nele as linhas abaixo.

[ Unidade ]

Descrição =Meu serviço

[ Serviço ]

Tipo =simples

ExecStart = / caixa / festa / lar / do utilizador / script.sh

Reiniciar =em caso de falha

[ Instalar ]

Procurado por =padrão.alvo

Na seção [Unidade], o Descrição diretiva simplesmente contém o nome do serviço. Observe que não deve ter mais de 80 caracteres.

A seção [Serviço] contém as três diretivas importantes. Em primeiro lugar, o Tipo ; qual é simples , então ExecStart contendo o executável do nosso script personalizado. O serviço só será reiniciado quando houver uma falha.

A seção [Instalar] contém o Procurado por directiva que é padrão.target , o que implica que o serviço será ativado no estado do sistema quando for atingido no nível de execução padrão, que normalmente é multi-user.target ou graphical.target.

Agora salve o arquivo no ~/.config/systemd/user diretório com qualquer nome; Eu estou nomeando isso meuserviço.serviço .

Como gerenciar um serviço de usuário normal

Para gerenciar o serviço normal do usuário, o comando systemctl é usado com o -do utilizador bandeira. O -do utilizador sinalizador significa que o usuário está entrando em contato com o gerente de serviço, e não com o sistema.

Depois de criar o arquivo de serviço específico do usuário, a primeira etapa crucial é recarregar os arquivos de configuração do systemd.

sistemactl --do utilizador recarregar daemon

Isso aplicará as alterações.

Para saber se o serviço está rodando ou não, use systemctl, com o -do utilizador bandeira e opção.

sistemactl --do utilizador status [ Nome do Serviço ]

Outros comandos para gerenciar o serviço normal do usuário são mencionados abaixo:

sistemactl --do utilizador começar [ Nome do Serviço ]

sistemactl --do utilizador habilitar [ Nome do Serviço ]

sistemactl --do utilizador parar [ Nome do Serviço ]

sistemactl --do utilizador desabilitar [ Nome do Serviço ]

sistemactl --do utilizador reiniciar [ Nome do Serviço ]

Como criar um serviço de usuário normal com permissões de administrador do sistema

Existem muitos serviços que um usuário cria, mas eles requerem permissão de administrador para serem executados. Esses serviços podem ser criados adicionando um Do utilizador diretiva para a seção [Serviço].

O Do utilizador A diretiva pode ser usada para mencionar o nome do usuário cujas permissões são necessárias para executar o serviço, como administrador . Portanto, se um usuário normal deseja criar um serviço que exija permissões de administrador, basta adicionar o Usuário = administrador na seção [Serviço] fará o trabalho. No entanto, este serviço permanecerá ativo enquanto o administrador estiver ativo. Observe que este serviço não pode ser controlado diretamente pelo administrador.

Conclusão

O usuário normal também pode criar um serviço systemd, mas ele deve ser colocado em ~/.config/systemd/user diretório. Este serviço é executado enquanto o usuário que o criou estiver logado. Esses serviços também são gerenciados através do comando systemctl, mas com -do utilizador bandeira. O que informa ao systemd que o serviço está sendo chamado pelo usuário, não pelo sistema. Neste guia, criei um serviço de usuário normal personalizado e mencionei comandos systemctl para gerenciá-lo. Além disso, também destaquei um método para criar um serviço que requer privilégios administrativos.