Enviar Ctrl-Alt-Del sobre SSH?

4

Eu sei que o Linux pode, dependendo da configuração, permitir que o usuário interativo reinicie o servidor pressionando Ctrl - Alt - Del mesmo sem efetuar login. Tenho uma sessão console remoto sobre SSH em um servidor remoto que não consigo fazer login, mas desejo reinicializá-lo. É possível enviar de alguma forma a combinação de teclas Control - Alt - Apagar através do SSH (ou telnet )? Se sim, como?

Editar: para esclarecer, não estou apenas conectado ao servidor sshd over ssh - Estou conectado por meio de um switch KVM sobre IP, por isso é um console serial. Mas essa conexão em si é sobre SSH e minha pergunta é como enviar a combinação de teclas Ctrl - Alt - Del sobre ela.

    
por EMP 05.08.2009 / 12:55

8 respostas

4

Se você estiver conectado a um console serial e seu kernel tiver CONFIG_MAGIC_SYSRQ e /proc/sys/kernel/sysrq ativado (padrão em minhas máquinas Ubuntu), você pode tentar BREAK , ALT - BREAK ou CTRL - BREAK (depende do SSH do conversor serial).

Se isso funcionar, você pode pressionar h (dentro de 5 segundos) para obter uma lista de comandos disponíveis (" s = sync filesystems " e " b = force immediate reboot " são talvez o que você está procurando) .

Para mais informações, consulte linux / Documentation / sysrq.txt

    
por 05.08.2009 / 16:26
6

Você pode usar o gatilho Sysrq para fazer uma reinicialização imediata (é como pressionar ALT-BREAK-b):

echo b >/proc/sysrq-trigger

ANTES disso, você pode querer sincronizar todos os sistemas de arquivos, para não perder nenhum dado:

echo s >/proc/sysrq-trigger

Isso só funcionará se o CONFIG_MAGIC_SYSRQ estiver ativado no seu kernel. As possíveis chaves são explicadas em Wikipedia .

    
por 21.03.2011 / 00:24
1

Em um comentário que você menciona (ttyS0) - este não é o console local, é um console serial.

Eu não acho que você possa usar Ctrl-Alt-Del no console serial.

link sugere uma maneira de fazer o magic-sysrq funcionar em série - talvez isso seja suficiente para reiniciar um servidor?

    
por 05.08.2009 / 16:14
0

A reinicialização de três dedos só está disponível em um console local.

Ele é tratado pela seguinte linha inittab:

# What to do at the "Three Finger Salute".
ca:12345:ctrlaltdel:/sbin/shutdown -r now

Você precisaria usar os comandos shutdown , halt ou reboot de um shell com privilégios de root, se não tiver acesso físico à máquina.

    
por 05.08.2009 / 13:08
0

Procure um comutador KVM remoto para reinicializar sem acesso SSH. link

    
por 05.08.2009 / 13:19
0

É possível que o comando tenha sido desativado? Eu regularmente desabilito isso nos meus servidores de produção, geralmente para protegê-los de mim quando esqueço que estou logando em uma máquina Linux em vez de uma máquina Windows e acidentalmente pressiono Ctrl-Alt-Del e subseqüentemente reinicialize a máquina.

Em máquinas que eu deixo para que uma pessoa não técnica possa reiniciar, eu estendo o tempo no exemplo de Dan de "agora" para "2 minutos", então há uma pequena chance de que a reinicialização possa ser abortada se necessário .

    
por 05.08.2009 / 13:47
0

Se você souber o nome de usuário / senha da máquina remota, pode usar o comando PSShutdown da SysInternals para reinicialize um computador remoto. Note que, se você se deu ao trabalho de forçar o SSH a um KVM, seu servidor provavelmente está configurado para que você não possa reinicializar as máquinas sem efetuar login. Na verdade, é o padrão para servidores do MS, se bem me lembro. / p>     

por 21.03.2011 / 04:45
-2

Não é mais fácil apenas "encerrar -h now", "reboot" ou "halt" na linha de comando, dependendo do que você preferir que aconteça com a máquina?

    
por 05.08.2009 / 13:04