
Estou tentando obter o status de uma unidade, mas apenas as 3 primeiras linhas assim:
systemctl --user status resilio-sync --lines=3
Eu tentei várias variações disso com -n 3 etc..., nada funciona. E o estranho: sempre mostra o log completo (13 linhas), em vez de 10 linhas que deveria ser o padrão de acordo com a documentação dosistemactl.
A tentativa systemctl status
confirma isso: apenas envia todas as 45 linhas para o terminal, quando na verdade deveria ser 10.
Estou faltando alguma coisa aqui? Que eu saiba não mudei nada.
Como solução alternativa, estou usando atualmente:
systemctl --user status resilio-sync | sed -ne '1,3p'
mas prefiro corrigir o problema subjacente e usar o comando nativo. O sistema é Kali Linux (re4son-kernel, dedos pegajosos) em um Raspberry Pi (é fácil culpar essa configuração estranha, mas como essa é a funcionalidade principal do Linux, não acho que isso deva importar)
Responder1
O comando systemctl status
exibe o status do serviço e as linhas correspondentes de journalctl
, --lines=3
limitará o número exibido de linhas do diário a 3. por exemplo:
systemctl --user status resilio-sync --lines=0
exibirá apenas o status do esilio-sync
serviço sem o journalctl
log.
-n, --linhas=
Quando usado comstatus, controleso número de linhas do diáriopara mostrar, contando a partir dos mais recentes. Recebe um argumento inteiro positivo ou0 para desativar a saída do diário. O padrão é 10.
Para limitar a saída do systemctl status
comando você pode usar opções:
systemctl check resilio-sync
systemctl is-active resilio-sync
systemctl is-enabled resilio-sync
ou agrupando as opções:
systemctl is-active is-enabled resilio-sync
Responder2
É para isso que o comando head foi projetado.
systemctl --user status resilio-sync | head -n 3