Como fazer o systemd não travar (sistema que não responde), mas fornecer shell de emergência?

0

Eu não estou muito familiarizado com o systemd. A resposta que busco com essa pergunta é:

Como é possível fazer o systemd reagir a problemas com "deixar o usuário em um tipo de emergência", em vez de simplesmente ter um sistema que não responde?

Exemplo para ser explícito: Caso de uma instalação do arch linux em um thinkpad, parece haver alguma miscofiguração do x-org-server, ou wayland, ou talvez systemd, ou lightdm, que em vez de produzir um erro mensagem deixa o usuário desligou. Isso significa que o usuário vê as mensagens de serviço / inicialização sendo enviadas para tty1 pararem, sem que nenhuma mensagem de erro tenha sido produzida (se houver uma gloriosa systemd-journald )? Qualquer combinação de teclas pode até produzir um shell de root para permitir que o usuário verifique o erro e corrija-o.

Conseqüentemente, a resposta é como configurar o systemd para ser colocado em um shell de emergência para evitar um sistema desligado em qualquer erro, no caminho para um graphical.target

Como uma situação tão desligada pode ser feita, por exemplo, nesta pergunta sobre U & L " arch-linux-travar-em-atingido-alvo-interface gráfica "

    
por humanityANDpeace 12.06.2018 / 16:56

2 respostas

0

Não há parte da configuração do systemd que inclua ter um sistema que não responde como um caminho intencional.

Systemd tem muita configuração dedicada ao gerenciamento de processos. Veja, por exemplo, Restart= e OnFailure= .

Para resolver seu problema e evitar o sistema sem resposta, você entenderá melhor qual é a causa. Verificar journalctl -xe é um bom ponto de partida (possivelmente após uma reinicialização). Tente pesquisar "fatal" ou "erro" na saída.

Se você tiver um kernel panic ou memória corrompida, systemd não será capaz de ajudá-lo em nenhum caso.

    
por 12.06.2018 / 18:59
0

O emergency.target pode ser acionado quando uma unidade entra em estado de falha usando OnFailure=emergency.target na seção [Unit] . Dito isto, um serviço "suspenso" (ocupado em looping para sempre) não acionará uma condição de falha, ele continuará até ser eliminado ou o tempo limite atingido.

O Systemd não pode saber se o programa que "trava" está fazendo o que foi projetado para fazer ou está falhando, cabe ao administrador do sistema decidir isso.

    
por 15.06.2018 / 19:19