Qualquer maneira de usar ssh para recuperar um Mac de girar a bola da praia da morte

9

No Linux, posso acessar um console ssh ou Ctrl-Alt-F1 e digitar um comando para reiniciar o gerenciador de janelas.

Existe algum equivalente para o Mac Mountain Lion?

Tentei ssh'ing em um Mac congelado e consegui matar processos individuais, mas não consegui soltar a máquina. A execução do comando sudo reboot matou minha capacidade de ssh, mas não reiniciou a máquina.

justingordon
fonte
Provavelmente isso é possível, mas realmente depende do que está causando o beachballing. Isso acontece com alguma previsibilidade? Se você puder descobrir qual processo está causando o problema, matá-lo deve funcionar, a menos que seja algo de baixo nível ou um problema de hardware (eu tinha um disco rígido que periodicamente deixava a conexão cair, causando uma bola de praia irrecuperável).
9483 robmanthers
Se sudo shutdown -r nownão conseguir interromper os processos e causar uma reinicialização, você provavelmente precisará puxar a energia ou manter pressionado o botão liga / desliga para recuperar.
bmike
Sim, eu tive que segurar o botão liga / desliga. "shutdown" parecia apenas cortar o ssh. A bola de praia nunca parava.
justingordon
→ Justin: Você está executando o MacOS X 10.8.3?
dan
Sim, 10.8.3, mais recente MBP Retina.
justingordon

Respostas:

4

Para responder à sua pergunta: não, não existe uma função acessível no nível do gerenciador de janelas. É uma boa sugestão encaminhar ao feedback do Apple MacOS X

O seu Mac ainda está ativo?

Experimentar:

ping IP_of_my_mac

Você pode acessá-lo com ssh?

Você pode nos fornecer uma cópia da saída de um:

top -o cpu

e:

tail -20 /var/log/system.log

Se o problema aparecer mais uma vez, você pode tentar matar a janela de login assim: conecte-se no seu Mac louco com ssh

/usr/bin/sudo /bin/kill `ps ax | grep '[/]loginwindow' | awk '{print $1}'`

Este comando feio:

ps ax | grep '[/]loginwindow' | awk '{print $1}'

é um truque para fornecer o ID do processo da janela de login sem risco de matar o cara errado. Não tenho certeza se isso será suficiente para forçar um total livre e redefinir a GPU. Diga-me se isso não funcionar, para que eu possa remover uma solução alternativa inútil e perigosa.

dan
fonte
Top não mostrou nada. Aqui estão algumas mensagens de log: 5/8/13 10: 01: 16.000 kernel AM [0]: IOVendorGLContext :: ReportGPURestart 5/8/13 10: 01: 16.000 kernel AM [0]: NVDA (OpenGL): exceção de canal! excepção tipo = 0xd = GR: SW Notificar erro, 5/8/13 10: 19: 31,913 PM mdworker [62359]: não é possível falar de lsboxd
justingordon
Parece que você tem um problema de driver de hardware da GPU. Aconselho que você faça cópias dessas mensagens de erro e leve-as para uma AppleStore.
dan
Agora, não há beachball giratório, mas mais duas falhas: 10 de maio 00:07:58 JustinMbp.local coreservicesd [29]: SendFlattenedData, o erro # 268435460 (ipc / send) atingiu o tempo limite de :: mach_msg (), enviando a notificação kLSNotifyApplicationDeath para notificationID = 237 10 de maio 00:08:08 Kernel JustinMbp [0]: NVDA (OpenGL): Tempo limite do canal! 10 de maio 00:08:15 JustinMbp.local sshd [4051]: aceito teclado-interativo / pam para justin a partir da porta 192.168.1.69 42150 ssh2 10 de maio 00:08:15 JustinMbp.local sshd [4051]: USER_PROCESS: 4054 ttys017 maio 10 00:08:28 Kernel JustinMbp [0]: NVDA (OpenGL): Tempo limite do canal!
justingordon
10 de maio 00:08:36 JustinMbp.local fseventsd [43]: SLOWDOWN: client 0x7fb57401a800 (pid 2254) dormindo devido a muitos erros (num usleeps 11)
justingordon
A execução do último comando para eliminar o processo de login resulta no cursor simples se transformando em uma bola de praia giratória.
justingordon
1

Eu uso isso em um script de shell chamado restart-graphical.sh

#!/bin/sh

sudo killall -HUP WindowServer

exit 0

Isso NÃO lhe dará a chance de salvar nada.

Observe que eu me deparei com uma situação em que nada ajudaria, exceto a tomada. Isso geralmente ocorre quando um dispositivo USB ou FireWire causa um travamento incurável.

TJ Luoma
fonte
Não tenho certeza de que vantagem isso teria sobre o interruptor de energia? Evite erros de disco, talvez?
justingordon
Eu tentei isso e a bola de praia girando desapareceu, mas nada mais aconteceu.
justingordon
A vantagem é que você pode experimentá-lo em situações em que não tem acesso ao botão liga / desliga. E se você puder acessar a tela de login (que é o que deve acontecer quando você a executar), poderá fazer uma reinicialização limpa.
TJ Luoma
Nenhuma tela de login apareceu. Eu tive que usar o interruptor.
justingordon