Problema com o script de shell para reinicializar o computador / alternar para o Windows

1

Eu tenho pouca experiência com o Linux e quase nunca escrevi um shell script, mas precisei de uma estação de trabalho com windows e linux para fazer certos cálculos. A estação de trabalho é, no entanto, usada principalmente remotamente a partir de um computador Windows.

Eu instalei o windows em uma partição e o linux no outro (usando o grub2 para dual boot). Eu escrevi um pequeno script de shell que reinicia o computador no Windows a partir do Linux, mas depois do link

#!/bin/bash
gksudo grub-reboot "Windows 7 (loader) (on /dev/sda1)"

Isso funciona perfeitamente e quando a reinicialização do Windows é iniciada e quando a reinicialização é iniciada novamente, o ubuntu é iniciado.

Para trabalhar através da conexão remota, eu instalei o teamviewer, tanto no windows como no ubuntu (teamviewer 9, diretamente do site teamviewer).

Agora meu problema é o seguinte. Quando eu inicio meu computador, posso usar o teamviewer sem problemas no Ubuntu. Quando eu reinicio o Windows usando o script acima, também posso usar o TeamViewer. Em seguida, quando eu reinicio do Windows para o Ubuntu não consigo me conectar ao TeamViewer. Se eu reiniciar novamente (o que não posso fazer quando estou em um local remoto), o teamviewer funciona perfeitamente no Ubuntu.

Eu tentei procurar se (quando eu não posso usar teamviewer) o serviço teamviewer está rodando no Ubuntu. Qual parece ser o caso, porque quando eu tento o código abaixo, ele me diz que o serviço está em execução. Se eu parar e iniciar o serviço novamente, o TeamViewer ainda não funcionará.

sudo teamviewer --daemon enable (or start)

Minha solução final (não perfeita) para o problema seria fazer um script que basicamente reinicia o Ubuntu uma vez quando ele é iniciado. Eu escrevi um pequeno script de shell para ele que eu coloquei na pasta etc / init.d. O script basicamente faz um arquivo .txt e verifica se isso está presente. Se o teamviewer de reinicializações do computador funcionará novamente. Mas esse roteiro dá problemas.

#!/bin/bash
if [ ! -f /tmp/reboot.txt ];
then 
    echo "test" > /tmp/reboot.txt 
    sleep 3s
    reboot
else
fi
exit 0

Este script faz o reboot.txt, mas não reinicializa. Eu também tentei remover o else, mas quando fiz isso, ele continua reiniciando continuamente.

Alguém pode me ajudar com meu problema de visualizador de equipe, sobre como resolver facilmente o problema de que ele não funciona? Ou me ajudar com o meu script de shell sobre como reiniciar o Ubuntu uma vez quando ele é inicializado. Esta última solução definitivamente me possibilita usar o teamviewer sem problemas e os 30 segundos extras que esperam pela reinicialização extra não são problema, então acho que seria a solução mais fácil.

ATUALIZAÇÃO: Eu tentei o que o MilliByte respondeu abaixo sem sucesso.

    
por JH6 02.12.2014 / 12:35

1 resposta

0

Eu alterei o script para ler:

#!/bin/bash
if [ ! -f /tmp/reboot.txt ]
then 
    echo "test" > /tmp/reboot.txt 
    sync
    reboot
fi
exit 0

O sync irá liberar as alterações no sistema de arquivos antes da reinicialização.

    
por millibyte 02.12.2014 / 12:57