No RHEL 5.6 eu tenho um script init.d que está preso em um loop infinito. Como inicializar sem carregá-lo?

1

Eu cometi um erro de cabeça dura em um dos meus scripts init.d que fica preso em um loop infinito durante o processo de inicialização e bloqueia a conclusão. Eu, portanto, não consigo chegar a um shell e corrigi-lo. Como posso inicializar e não executar todos os scripts de inicialização? Eu tenho raiz, se necessário.

    
por dacracot 16.06.2011 / 03:42

2 respostas

6

Passar 1 na linha do kernel no gerenciador de partida deve iniciá-lo no modo de usuário único, que deve não iniciar o script, a menos que esteja gravemente quebrado. Se a inicialização em modo único não funcionar, você precisará obter o disco de instalação e inicializar em modo de recuperação usando-o.

    
por 16.06.2011 / 03:54
6

Como Ignacio sugeriu, a solução mais simples é inicializar no modo de usuário único. Para fazer isso, pressione qualquer tecla na tela inicial da contagem regressiva antes de inicializar no kernel. A partir daqui, destaque o kernel correto e pressione e. Pressione e novamente para editar o cmdline e no final em S, s, single ou 1. Pressione return e, em seguida, b para inicializar. Isso não executará seu script de inicialização, a menos que você o tenha explicitamente configurado para fazer parte do modo de usuário único, o que é improvável.

No entanto, se você ainda tiver problemas neste ponto, não precisará do disco de instalação. Você pode adicionar o seguinte à sua linha de comando do kernel:

init=/bin/bash

Isso fará com que o kernel inicie /bin/bash como pid 1, em vez de init. Neste ponto nenhum dos scripts de inicialização do sistema será executado, então você deve ser capaz de cuidar das coisas. Note que você provavelmente terá um sistema de arquivos raiz somente de leitura, do qual você deve ser capaz de cuidar assim:

mount -o remount,rw /

... ou você pode remover a opção ro da linha de comando do kernel.

    
por 16.06.2011 / 04:36