Não sei se " modo de usuário único " é o termo correto para isso, mas aqui vou eu:
No menu GRUB, pressionei Epara editar as configurações de execução. Na linha que começa com linux
, anexei o seguinte:
rw init=/bin/bash
e pressionado F10. O computador inicializa em 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?
O modo de usuário único não é o termo certo há algum tempo. Na década de 1990, o que costumava ser o modo de usuário único se dividiu em modo de emergência e modo de resgate . Na verdade, você não está usando nenhum dos dois.
O que você está realmente fazendo é uma má ideia, porque envolve a execução de um programa como processo nº 1 que não foi projetado para executar as tarefas que o processo nº 1 realmente precisa fazer. Você estaria melhor usando os modos de emergência ou resgate, o último dos quais é invocado pela resposta aceita que a resposta que você aponta aponta.
Sim, os sinais agirão de forma estranha. O processo nº 1 tem semântica especial para sinais, para iniciantes, que é uma das várias razões pelas quais
init=/bin/bash
é uma má ideia. Além disso, os shells de controle de trabalho não podem fazer o controle de trabalho 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 realmente disse a você assim que foi iniciado.É possível, com algumas ferramentas simples de carregamento em cadeia, configurar uma sessão adequada com um terminal de controle e, a partir daí, permitir o controle do trabalho e a entrega do sinal a um grupo de processos em primeiro plano, mas isso não corrige todas as outras coisas que podem dar errado com
/bin/bash
como o programa nº 1 do processo, porque você deve executá-los cuidadosamente, explicitamente, à mão.Basta usar o modo de resgate ou o modo de emergência.
Leitura adicional
open-controlling-tty
. conjunto de ferramentas nosh. Programas.setsid
. conjunto de ferramentas nosh. Programas.vc-get-tty
. conjunto de ferramentas nosh. Programas.