Oi pessoal,
Depois adiciono mais informação.
Informação
[en]systemd - ArchWiki
[en]systemd.index
[en]systemd
No systemd 197 foi adicionado suporte nativo para um número de diferentes políticas de nomeação adequada no systemd/udevd e tem um esquema similar ao nome de dispositivos bios por padrão (mas no geral mais poderoso, e mais perto dos esquenas internos do kernel de identificação de dispositivo). Os diferentes esquemas de nomeação para interfaces de rede que agora são suportados nativamente pelo udev:
* Names incorporating Firmware/BIOS provided index numbers for on-board devices (example: eno1)
* Names incorporating Firmware/BIOS provided PCI Express hotplug slot index numbers (example: ens1)
* Names incorporating physical/geographical location of the connector of the hardware (example: enp2s0)
* Names incorporating the interfaces’s MAC address(example: enx78e7d1ea46da)
* Classic, unpredictable kernel-native ethX naming (example: eth0)
Mostra o status do sistema em uso:
systemctl status
systemd/user
Aqui você pode ver o que é monitorado pelo sistema e pelo usuário. Para ver isso:
systemd-cgls /system.slice
systemd-cgls /user.slice
systemd-cgls
Comandos:
Irei adicionar algumas opções de comandos, mas recomendo ver a ajuda e o manual.
systemctl
Mostra as units carregadas e ativas
systemctl ou systemctl list-units
Mostra todas as units (masked,failed,dead,ative,inactive)
systemctl -a
A opção -t serve para filtrar o tipo de unit (socket,mount,service,automount…) e o estado da unit ao carregar(loaded,masked,not-found)
systemctl -t service
systemctl -a -t masked
systemctl -a -t not-found
Para verificar as units que falharam ao iniciar
systemctl --failed
Ver o nome completo da unit
systemctl --full
Sem legenda e sem indicador (paginar)
systemctl --no-legend
systemctl --no-pager
systemctl -a -t masked --no-legend --no-pager
Para iniciar, parar, mascarar, o ever se a unit está habilitada,…
systemctl [start,stop,reload,restart,try-restart,reload-or-restart, status] nome-da-unit
systemctl [enable,disable,mask,unmask,is-enaled] nome-da-unit
Verifica por unit novas e modificadas. atualiza o systemd.
systemctl daemon-reload
Para ver as unit enabled, disabled, stats
systemctl -t service list-unit-files --state=enabled
systemctl -t service list-unit-files
Uma maneira simples é criar uma função no ~/.bashrc
Por exemplo:
listar-arquivos-unit(){
[[ “$1” == “s” && “$#” -lt 2 ]] && systemctl list-unit-files;
[[ “$1” == “u” && “$#” -lt 2 ]] && systemctl list-unit-files --user;
[[ “$1” == “se” && “$#” -lt 2 ]] && systemctl list-unit-files --state=enabled;
[[ “$1” == “sd” && “$#” -lt 2 ]] && systemctl list-unit-files --state=disabled;
[[ “$1” == “ss” && “$#” -lt 2 ]] && systemctl list-unit-files --state=static;
[[ “$1” == “ue” && “$#” -lt 2 ]] && systemctl list-unit-files --user --state=enabled;
[[ “$1” == “ud” && “$#” -lt 2 ]] && systemctl list-unit-files --user --state=disabled;
[[ “$1” == “us” && “$#” -lt 2 ]] && systemctl list-unit-files --user --state=static;
if [[ “$#” -eq 0 || “$1” != “s” && “$1” != “u” && “$1” != “se” && “$1” != “sd” && “$1” != “ss” && “$1” != “u” && “$1” != “ue” && “$1” != “ud” && “$1” != “us” ]]; then
cat << USOAJUDA
$@ não é uma opção válida.ajuda: listar-arquivos-unit [opções]
s : Mostra os arquivos unit do sistema
u : Mostra os arquivos unit do usuário
se : Mostra os arquivos unit do sistema habilitados
sd : Mostra os arquivos unit do sistema desativados
ss : Mostra os arquivos unit do sistema estáticos
ue : Mostra os arquivos unit do usuário habilitados
ud : Mostra os arquivos unit do usuário desativados
us : Mostra os arquivos unit do usuário estáticos
USOAJUDA
fi
}
A unit pode estar: enabled, disabled , masked e static
Static- são as units que já são carregadas automaticamente e não aceita o comando disable.
O systemd já carrega automaticamente várias units, muitas não são necessárias ou o programa não está instalado. Neste caso podemos utilizar o comando mask para mascarar ao iniciar, assim o systemd não irá mais carregá-las.
ex.
Procurar por units não encontradas
systemctl -a -t not-found
Mascarar units
systemctl mask plymouth-quit-wait.service plymouth-start.service rc-local.service systemd-readahead-collect.service systemd-readahead-replay.service e etc…
systemd-analyze
systemd-analyze blame - mostra o tempo das units
systemd-analyze time - informa o tempo de carregamento
systemd-analyze plot > ~/imagem.svg - gera uma imagem
systemd-analyze critical-chain -mostra uma árvore da cadeia de unidades crítica de tempo
sudo systemd-analyze verify smbd.service -Verifique os arquivos da unidade quanto à exatidão
systemd-cat
Este comando serve para enviar uma saída de um outro comando para journalctl.
Útil se você tem um script e que que ele envie o status para o journal.
echo “Testando o systemd-cat” | systemd-cat
$ journalctl -n1
– Logs begin at (null), end at Qua, 2012-12-19 02:19:00 BRST. –
Dez 19 02:19:00 casahost [2639]: Testando o systemd-cat
systemd-cgtop
É parecido com o comando top.
systemd-delta
Busca por informações sobrescritas nas units. Muito útil para saber quais as units foram modificadas e o que foi modificado. Utiliza o diff.
systemd-detect-virt
Detecta ambiente virtual.
loginctl
Para ver informações da sessão do usuário
loginctl show-session $XDG_SESSION_ID
loginctl list-sessions
SESSION UID USER SEAT TTY
c1 1000 teste seat0 tty1
1 sessions listed.
loginctl session-status $XDG_SESSION_ID
ou
loginctl session-status c1
journalctl
Dica: você não está vendo mensagens de outros usuários e do sistema. Os usuários no grupo ‘systemd-journal’ podem ver todas as mensagens.
Adicione o seu usuário ao grupo systemd-journal
gpasswd -a seu_usuário systemd-journal
journalctl -b - informação do boot
journalctl -u=NOMEDAUNIT - informação de uma unit(service,mout,etc…)
journalctl -b -u cronie - verifica no boot informações do serviço cronie
journalctl -n4 - vê as 4 linhas mais recentes
journalctl -n ou journalctl -n10 ou journalctl -f - verifica as últimas 10 entradas
journalctl --since “00:00:16” -u cronie.service - vê a partir de um determinado horário
journalctl --since “20 min ago” - vinte minutos atrás
journalctl --since “2012-12-18 00:00:16” -u cronie.service - vê a partir de um determinado dia e horário
jounumbers (example: ens1)
journalctl -n -o cat - uma saída interessante. A opção “-o” é o modo de saida que pode ser : short, short-monotonic, verbose, export, json, json-pretty, json-sse, cat
journalctl _PID NÚMERODOPID - vê informação da unit atravês do pid
Gerenciamento de energia
O polkit é necessário para o gerenciamento de energia como um usuário não privilegiado. Se você estiver em uma sessão local do usuário systemd-logind e nenhuma outra sessão estiver ativa, os seguintes comandos funcionarão sem privilégios de root. Caso contrário (por exemplo, porque outro usuário está logado em um tty), o systemd solicitará automaticamente a senha root.
Desligue e reinicie o sistema:
systemctl reboot
Desliga o sistema:
systemctl poweroff
Suspenda o sistema:
systemctl suspend
Coloque o sistema em hibernação:
systemctl hibernate
Coloque o sistema no estado de suspensão híbrida (ou suspenda para ambos):
systemctl hybrid-sleep
Edição de units
Arquivos unit de substituição
Para substituir o arquivo uint /usr/lib/systemd/system/unit, crie o arquivo /etc/systemd/system/unit e reative a unit para atualizar os links simbólicos:
systemctl reenable unit
Como alternativa, execute:
systemctl edit --full unit
Isso abre o arquivo /etc/systemd/system/unit no seu editor (copiando a versão instalada se ainda não existir) e a recarrega automaticamente quando você terminar a edição.
Nota: As units de substituição continuarão sendo usadas, mesmo que o Pacman atualize as units originais no futuro. Esse método dificulta a manutenção do sistema e, portanto, a próxima abordagem é preferida.
Arquivos drop-in
Para criar unit drop-in /usr/lib/systemd/ system/unit, crie o diretório /etc/systemd/system/unit.d/ e coloque os arquivos .conf lá para substituir ou adicionar novas opções. O systemd analisará e aplicará esses arquivos na parte superior da unidade original.
A maneira mais fácil de fazer isso é executar:
systemctl edit unit
Isso abre o arquivo /etc/systemd/system/unit.d/override.conf no seu editor de texto (criando-o se necessário) e recarrega automaticamente a unit quando você terminar de editar.
Nota: Nem todas as chaves podem ser substituídas pelos arquivos drop-in. Por exemplo, para alterar Conflicts= é necessário um arquivo de substituição.
Reverter para a versão do fornecedor
Para reverter as alterações feitas em uma unidade usando systemctl edit, faça:
systemctl revert unit