Ctrl + C não funciona no modo de usuário único no Linux

3

Eu não sei se " modo de usuário único " é o termo correto para isso, mas aqui vou:

No menu GRUB, pressione E para editar as configurações de execução. Para a linha que começa com linux , anexei o seguinte:

rw init=/bin/bash

e pressionado F10 . O computador inicializa com um shell de root sem solicitar nenhuma senha.

O problema é que os sinais não estão funcionando. Por exemplo, quando executo um comando, não consigo sair desse comando pressionando Ctrl + C .

Isso é esperado? Se sim, qual é a razão para isso e como posso corrigir isso? Está relacionado ao emulador de terminal no modo de usuário único?

    
por Utku 12.12.2017 / 01:52

1 resposta

1

O modo de usuário único não é o termo correto há algum tempo. Na década de 1990, o que costumava ser modo de usuário único dividido em modo de emergência e modo de recuperação . Você não está de fato usando qualquer um deles.

O que você está realmente fazendo é uma má ideia, porque envolve a execução de um programa como o processo # 1 que não foi projetado para executar as tarefas que o processo # 1 realmente precisa fazer. Seria melhor usar modos de emergência ou de resgate, o último dos quais é invocado pela resposta aceita de que a resposta para a qual você aponta aponta para.

Sim, os sinais agirão de maneira estranha. O processo nº 1 tem uma semântica especial para sinais, para iniciantes, que é uma das várias razões pelas quais init=/bin/bash é uma ideia ruim. Além disso, as shells de controle de job não podem fazer controle de job quando /dev/console é sua E / S padrão, mas nada configurou uma sessão adequada com um terminal de controle, como o shell Bourne Again o avisou assim que começou.

É possível com algumas ferramentas simples de carregamento em cadeia configurar uma sessão apropriada com um terminal de controle e, a partir daí, habilitar o controle do trabalho e a entrega de sinal para um grupo de processos em primeiro plano, mas isso não corrige todos os outros coisas que darão errado com /bin/bash como o programa # 1 porque você deve fazê-lo explicitamente, manualmente.

Basta usar o modo de recuperação ou o modo de emergência.

Leitura adicional

por 12.12.2017 / 22:43