Formulário de contato

Nome

E-mail *

Mensagem *

Este blog é um complemento do nosso canal no YouTube. Clique em @CanalQb para seguir e acompanhar nossos vídeos!

Imagem

Como Corrigir Erro de Serviço systemd no Ubuntu com Python

Como Corrigir Erro de Serviço systemd no Ubuntu com Python

Publicado por em

Como Corrigir Erro de Serviço systemd no Ubuntu com Python

@CanalQb Python - Ubuntu - Erro (code=exited, status=1/FAILURE) Main PID: 1692 (code=exited, status=1/FAILURE)
@CanalQb

Este erro ocorre ao tentar iniciar um serviço personalizado no Ubuntu, especificamente o serviço "arquivo.service". O systemd, que gerencia os serviços do sistema, tentou iniciar o serviço automaticamente, mas o processo falhou com um código de saída exit-code 1/FAILURE.

O que significa essa mensagem de erro?

A mensagem “activating (auto-restart)” indica que o systemd está tentando reiniciar o serviço automaticamente após a falha. Contudo, como o resultado final é um código de saída 1 (falha), o comando definido em ExecStart não conseguiu ser executado com sucesso.

Análise do problema

O comando ExecStart geralmente especifica o script ou programa que deve ser executado para iniciar o serviço. No seu caso, ele tenta executar o script Python knolix.py passando dois parâmetros: login e senha$. Possíveis causas para o erro incluem:

  • O script knolix.py não estar no caminho correto.
  • Os parâmetros passados ao script estão incorretos ou mal formatados.
  • O ambiente virtual Python (virtualenv) não estar ativado corretamente.
  • Problemas na configuração do arquivo do serviço, como erros de sintaxe.

Verificação do ambiente virtual

O comando source $VIRTUAL_ENV/bin/activate ativa o ambiente virtual Python antes de executar o script. Caso o caminho contido na variável VIRTUAL_ENV esteja incorreto, o ambiente não será ativado, causando falha na execução do script.

Exemplo do arquivo de serviço problemático

[Unit]
Description=Knolix qrodrigob.py
After=multi-user.target

[Service]
Type=simple
Restart=always
Environment="VIRTUAL_ENV=/home/ubuntu/knolix/qrodrigob
WorkingDirectory=/home/ubuntu/knolix
User=root
ExecStart=/bin/bash -c "source $VIRTUAL_ENV/bin/activate && /home/ubuntu/knolix/knolix.py login senha$"

[Install]
WantedBy=multi-user.target

Arquivo de serviço corrigido e funcionando

[Unit]
Description=Knolix qrodrigob.py
After=multi-user.target

[Service]
Type=simple
Restart=always
Environment="VIRTUAL_ENV=/home/ubuntu/knolix/qrodrigob"
WorkingDirectory=/home/ubuntu/knolix
User=root
ExecStart=/bin/bash -c "source $VIRTUAL_ENV/bin/activate && /home/ubuntu/knolix/knolix.py login 'senha'"

[Install]
WantedBy=multi-user.target

Principais correções realizadas

  • Adicionada a aspa de fechamento na linha Environment que estava ausente, corrigindo erro de sintaxe.
  • Incluídas aspas simples em torno do segundo argumento 'senha' no comando ExecStart, garantindo que o parâmetro seja interpretado corretamente como string.
  • Corrigida a aspa de fechamento do comando ExecStart, evitando erros de parsing.

Recomendações para resolver e evitar erros futuros

  1. Verifique se o script knolix.py está no diretório correto especificado em WorkingDirectory.
  2. Confirme se os parâmetros passados ao script estão corretos e com a formatação adequada.
  3. Confira o caminho do ambiente virtual configurado na variável VIRTUAL_ENV.
  4. Após modificar o arquivo do serviço, sempre execute o comando abaixo para recarregar as configurações do systemd:
    sudo systemctl daemon-reload
  5. Use o comando abaixo para reiniciar o serviço e verificar se o problema foi solucionado:
    sudo systemctl restart arquivo.service
  6. Consulte os logs do serviço para detalhes dos erros com:
    journalctl -u arquivo.service -b

Considerações finais

Configurar serviços personalizados no Ubuntu com systemd requer atenção especial à sintaxe e aos caminhos dos arquivos. Erros de aspas, caminhos incorretos e parâmetros mal formatados são causas comuns de falhas.

Seguindo as orientações deste guia, você poderá corrigir problemas relacionados ao erro status=1/FAILURE e garantir que seus scripts Python rodem corretamente como serviços no Ubuntu.

Para aprofundar seus conhecimentos sobre systemd e criação de serviços, consulte a documentação oficial do systemd.

Marcadores:

© CanalQB – Tutoriais de YouTube, Python, Airdrops e Criptomoedas

Comentários