Fora da vista / visão, eu poderia ter um programa do Windows abrir um terminal na rede e dizer ao Ubuntu para reiniciar? É para isso que o SSH poderia ser usado para [?]
Sim. Isso é efetivamente como eu faria. O primeiro passo é que você deseje instalar o Putty nos computadores com Windows. Isso permite que você conecte o SSH. Mas não se preocupe com isso por enquanto. Vamos fazer isso de trás para frente, a partir da máquina Ubuntu.
Eu escreveria um script na máquina Ubuntu para fazer o reinício. Se você puder ssh, é provável que você não precise fazer uma reinicialização completa. Você poderia argumentar que "poderia muito bem", mas isso geralmente significa que a reinicialização demora quatro ou cinco vezes mais do que precisava ser; é apenas uma perda de tempo.
Você deve conseguir se safar apenas com o reinício do GDM ( sudo restart gdm
), então eu escreveria um script Python interativo que avisasse o usuário para ter certeza de que eles estão certos de que desejam reiniciar GDM e, em seguida, reinicie-o. Depois disso, ele esperaria por cinco segundos e depois perguntaria se estava funcionando. Se não, faça uma reinicialização completa ( sudo reboot
).
Editar: Também existe a possibilidade de você ser capaz de reiniciar o aplicativo que essas telas estão exibindo, mesmo sem reiniciar o GDM. Eu não sei o que você espera cair, mas assuma todos os três e dê ao usuário a opção de reiniciar cada um sequencialmente, começando com o aplicativo, então o gdm, e depois a máquina.
Você pode usar maldições para tornar essa aparência mais bonita.
Em seguida, você precisa ter certeza de que o usuário do ubuntu pode fazer estes comandos no nível da raiz. Execute sudoedit /etc/sudoers
e adicione algo assim:
Cmnd_Alias REBOOT = /sbin/reboot
Cmnd_Alias RESTART = /sbin/restart
useraccount ALL=REBOOT
useraccount ALL=RESTART
Subtraindo useraccount
para o nome de usuário da conta que estaria executando este script.
Você deve conseguir fazer login via SSH e testar o script agora.
A última peça do quebra-cabeça é conectar o SSH ao Ubuntu e executar o script automaticamente. Você pode usar um certificado (é provavelmente mais seguro), mas para este exemplo eu vou usar apenas uma senha em texto puro.
putty.exe [email protected] -pw password -m commands.txt
Obviamente, sub-out useraccount
, 1.2.3.4
e password
com valores reais. commands.txt
deve ser um arquivo de texto no computador Windows contendo algo assim:
python my_python_script.py
Nota: O caminho quando você faz o login com /home/useraccount/
, ou coloque seu script python lá ou altere o caminho em commands.txt
.
Nota importante: O Putty será fechado assim que o comando terminar de ser executado. Isso significa que seu script Python DEVE ser interativo (pelo menos, perguntar "Pressione qualquer tecla para continuar" antes de sair) ou o usuário não verá nenhuma saída. Isso é bem simples. Você mencionou o Python, então presumo que você saiba (ou saiba como descobrir) como fazer prompts simples. Como eu disse anteriormente, uma interface simples de curses seria a mais profissional.
Nota importante 2: Por vezes, uma máquina / software falha ao ponto de um reinício difícil ser a única opção. Se você é o computador em um espaço que é realmente difícil de alcançar, certamente vale a pena considerar se você tem acesso a sua fonte de alimentação para que você possa fazer um "hard off-and-on" como último recurso. Certifique-se de usar um sistema de arquivos journalling para que a equipe não estrague tudo se eles usarem isso com muita freqüência e avise os funcionários que, se eles não o usarem como último recurso, pessoas de circo malvados irão roubar seus filhos, etc. são poucas coisas piores do que um funcionário que cheira o botão de reinicialização ao menor soluço.