quarta-feira, 28 de março de 2018

Controlando os serviços do SystemD com systemctl

O comando systemctl pode ser usado para controlar os serviços do SystemD que é o novo processo de inicialização do sistema já adotado por várias distros como Debian, Ubuntu e outras e para podemos desativar serviços para não ser iniciados automaticamente a cada boot, parar serviço, carregar ou listar os mesmos, devemos conhecer as opções  mais  básicas  deste comando para lidar com os serviços do SystemD, caso venha precisar algum dia, e neste artigo utilizarei sempre o serviço cups-browsed.service como exemplo.

Listando todos os serviços em execução

$ systemctl -t service

Aplicando um filtro para procurar por um serviço.

$ systemctl -t service | grep cups
cups-browsed.service      loaded active running Make remote CUPS printers available locally                    
cups.service                    loaded active running CUPS Scheduler  
                    
Desativar um serviço para não ser mais executado automaticamente na inicialização


Vamos supor que você queira desativar o serviço cups-browsed para que o mesmo não seja mais carregado automaticamente na inicialização.

$ ps xa | grep cups
  376 ?          Ss     0:00 /usr/sbin/cupsd -l
  589 ?          Ssl    0:00 /usr/sbin/cups-browsed
 6358 pts/0    S+     0:00 grep cups

$ sudo systemctl disable cups-browsed.service

Verificando se o serviço cups-browsed.service foi desativado

$ systemctl is-enabled cups-browsed.service
disabled

Ok, vimos que o serviço foi desativado para não mais ser executado automaticamente, mas este serviço na sessão atual continua ativo ainda e funcionando, o qual podemos conferir de maneira simples com o comando ps.

$ ps xa | grep cups
  376 ?          Ss     0:00 /usr/sbin/cupsd -l
  589 ?          Ssl    0:00 /usr/sbin/cups-browsed
 6358 pts/0    S+     0:00 grep cups

Parando o serviço no sessão atual

Parar para o serviço cups-browsed na sessão atual execute o comando abaixo

$ sudo systemctl stop cups-browsed.service

Verificando:
$ ps xa | grep cups
  384 ?        Ss     0:00 /usr/sbin/cupsd -l
 1102 pts/0    S+     0:00 grep cups


Ativar um serviço parado na sessão atual

Para ativar o serviço cups-browsed na sessão atual que tinha sido parado ou que esta desativado para iniciar automaticamente.

$ sudo systemctl start cups-browsed.service

Verificando:
$ ps xa | grep cups
  384 ?        Ss     0:00 /usr/sbin/cupsd -l
 1230 ?        Ssl    0:00 /usr/sbin/cups-browsed
 1235 pts/0    S+     0:00 grep cups


Reativando um serviço para ser executado automaticamente a cada inicialização

Para reativar um serviço que foi desabilitando para que o mesmo não seja executado automaticamente a cada nova inicialização do sistema execute o comando abaixo.

$ sudo systemctl enable cups-browsed.service
Synchronizing state of cups-browsed.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable cups-browsed

Conferindo se o mesmo foi reativado

$ systemctl is-enabled cups-browsed.service
enabled

Verificando o estado de um serviço 

O comando systemctl status nome-do-serviço fornece informações mais completo sobre o serviço específico do que o comando ps xa, pois este último somente mostra os serviços em execução.

$ systemctl status cups-browsed.service
● cups-browsed.service - Make remote CUPS printers available locally
   Loaded: loaded (/lib/systemd/system/cups-browsed.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

Neste exemplo o serviço cups-browsed.service está desativado para iniciar automaticamente, que é a parte disabled, após o nome do serviço, e o mesmo não está está sendo executado no momento, parte inactive da linha Active.

Agora vamos executar o serviço cups-browsed.service apenas nesta sessão atual.

$ sudo systemctl start cups-browsed.service
iniciando o serviço

Verificando novamente o status:

$ systemctl status cups-browsed.service
● cups-browsed.service - Make remote CUPS printers available locally
   Loaded: loaded (/lib/systemd/system/cups-browsed.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-01-18 10:46:55 -02; 4s ago
 Main PID: 2119 (cups-browsed)
    Tasks: 3 (limit: 4915)
   CGroup: /system.slice/cups-browsed.service
           └─2119 /usr/sbin/cups-browsed

O serviço cups-browsed.service continua desativado para iniciar automaticamente, mas agora ele está em execução, parte active da linha Active.

O comando "systemctl status" quando usado sem especificar o nome de um serviço retorna uma Hierarquia em forma de raiz de todos os processos ativos exibindo também o seu pid, similar ao comando pstree.

Nenhum comentário:

Postar um comentário