Como solucionar problemas de inicialização de aplicativos Linux com o comando journalctl

teclado de computador colorido

Nodar Chernishev/Getty Images

Raramente algo dá errado com o Linux, mas isso não significa que o sistema operacional esteja imune a problemas. De vez em quando, instalo um novo serviço ou aplicativo e depois iniciá-lo com o comando:

sudo systemctl iniciar NOME

Onde NOME é o nome do aplicativo ou serviço.

Além disso: Os primeiros 5 comandos do Linux que todo novo usuário deve aprender

Houve casos em que o serviço se recusou a iniciar ou funcionar corretamente. Quando isso acontece, para onde você se volta? Você sempre pode verificar os arquivos de log (geralmente o melhor lugar para começar) ou recorrer a outro comando que acompanhe o sistemactl. Esse comando é jornalctl.

O jornalctl O comando consulta o diário do systemd e lista o conteúdo de um diário que pode incluir insights sobre por que um determinado aplicativo ou serviço não está funcionando corretamente. Muitas vezes, quando você tenta iniciar um serviço com sistemactlse o serviço não iniciar corretamente (ou não iniciar), você verá uma sugestão na saída para usar o jornalctl comando para descobrir o que aconteceu.

Deixe-me mostrar como usar esse comando, para que você não precise ficar sem saber por que as coisas não estão indo como planejado.

Como usar o jornalctl

O que você precisa: A única coisa que você precisa para esta tarefa é uma distribuição Linux que use systemd, que é a maioria das principais distribuições.

A primeira coisa que você deve tentar é correr jornalctl sem opções, o que é simples:

Mostrar mais

jornalctl

O que você verá é toda a saída do diário do systemd. A partir dessa saída, você poderá encontrar informações para ajudá-lo a solucionar seu problema.

Quando executei o comando, havia apenas 41 linhas de saída. Já vi casos em que havia centenas de linhas na saída, o que tornou o uso do comando sem argumentos ou opções um pouco inútil.

Além disso: 10 aplicativos Linux que instalo em cada nova máquina (e por que você deveria também)

Felizmente, você pode filtrar muito desse ruído.

Por exemplo, o SSH está tendo problemas para iniciar. Para solucionar esse problema, você pode executar o comando:

Mostrar mais

systemctl -u ssh

Nesse caso, -você significa unidadeou uma unidade systemd específica (pense em “serviço”).

Além disso: Como criar pontos de restauração do sistema no Linux com Timeshift – e por que você deveria

A saída do comando acima pode ser semelhante a esta:

12 de janeiro 09:55:42 pop-os systemd (1): Iniciando o servidor OpenBSD Secure Shell …
12 de janeiro 09:55:42 pop-os sshd (3424): Servidor escutando na porta 0.0.0.0 22.
12 de janeiro 09:55:42 pop-os sshd (3424): Servidor escutando em :: porta 22.
12 de janeiro 09:55:42 pop-os systemd (1): Servidor OpenBSD Secure Shell iniciado.
15 de janeiro 09:39:26 pop-os sshd (659190): Usuário inválido jackwallen de 192.168.1.77 porta 55040
15 de janeiro 09:39:29 pop-os sshd (659190): pam_unix (sshd: auth): verificação de passagem; usuário desconhecido
15 de janeiro 09:39:29 pop-os sshd (659190): pam_unix (sshd: auth): falha de autenticação; nome de log= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.77
15 de janeiro 09:39:31 pop-os sshd (659190): Falha na senha do usuário inválido jackwallen da porta 192.168.1.77 55040 ssh2
15 de janeiro 09:39:33 pop-os sshd (659190): Conexão fechada pelo usuário inválido jackwallen 192.168.1.77 porta 55040 (preauth)
15 de janeiro 09:39:39 pop-os sshd (659232): Senha aceita para jack de 192.168.1.77 porta 55049 ssh2
15 de janeiro 09:39:39 pop-os sshd (659232): pam_unix (sshd: session): sessão aberta para o usuário jack (uid = 1000) por (uid = 0)

Como você pode ver, no meu caso, o SSH está funcionando conforme o esperado, mas houve uma tentativa fracassada de fazer login (porque esqueci de adicionar um nome de usuário válido ao fazer login no meu iMac).

Existe uma maneira ainda melhor de solucionar problemas de um serviço com jornalctl. Digamos que o SSH esteja em execução, mas tenha problemas para aceitar conexões (ou qualquer outro problema que possa acontecer). Você pode “rastrear” a saída (que imprime informações em tempo real conforme elas acontecem), assim:

Mostrar mais

diáriotcl -xefu ssh

Este comando não apenas informará o status de inicialização e execução do serviço, mas também listará as entradas mais recentes registradas no diário desse serviço. Para fechar, use o atalho de teclado Ctrl+c. Para quem quiser saber, aqui vai uma explicação das opções:

  • x – adicione uma explicação às linhas de log do catálogo de mensagens
  • e – salta imediatamente para o final do diário dentro da ferramenta de pager implícita
  • f – follow (imprime continuamente novas entradas à medida que são registradas)
  • u – unidade (conforme explicado acima)

Também é possível visualizar um intervalo de tempo específico com jornalctl. Digamos que você queira visualizar apenas as entradas registradas a partir de 20 de janeiro às 10h. O comando seria:

Mostrar mais

jornalctl –desde “20/01/2025 10:00:00”

Você veria todas as entradas registradas das 10h até o horário atual.

Além disso: Como manter o Linux otimizado (e economizar tempo) com Stacer

Você poderia tornar esse intervalo ainda mais específico. Digamos que você queira visualizar as entradas registradas das 10h às 10h10. O comando seria:

jornalctl –desde “2025-01-20 10:00:00” –até “2025-01-20 10:05:00”

E é assim, meus amigos, que vocês podem usar jornalctl para solucionar problemas de inicialização de aplicativos no Linux.


Rolar para cima