Você não precisa reiniciar para reiniciar o TeamViewer; você pode obter launchd
para monitorar o processo e reiniciá-lo se ele falhar.
Primeiro, você precisa identificar o executável real. Abra um terminal e examine o bundle do TeamViewer - o executável provavelmente estará em /Applications/TeamViewer.app/Contents/MacOS/TeamViewer
, mas sua milhagem poderá variar. Para verificar se encontrou o caminho certo, digite-o no terminal - se o TeamViewer for iniciado, provavelmente você o terá. Como alternativa, abra o Activity Monitor enquanto o TeamViewer estiver em execução, identifique o processo do TeamViewer e clique em "Inspecionar" na barra de ferramentas. Em seguida, na guia Abrir arquivos e portas, o executável provavelmente será a primeira ou segunda entrada listada (após /
).
Depois de saber qual programa você está acompanhando, você pode criar uma launchd
Property List. Este é um arquivo XML, portanto, você pode fazê-lo com seu editor de texto favorito ou, como alternativa, pode usar o Editor de lista de propriedades instalado com o Mac OS X Dev Tools. Crie o seguinte:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>some.meaningful.name</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/path/we/identified/earlier</string>
</array>
</dict>
</plist>
Salve isso em ~/Library/LaunchAgents/some.meaningful.name.plist
, abra um terminal e faça:
launchctl load ~/Library/LaunchAgents/some.meaningful.name.plist
Isso fará com que o launchd carregue o item que fará com que ele monitore o programa especificado e, se ele sair por qualquer motivo, ele será reiniciado. Isso só será executado se o usuário estiver conectado. Para executar na inicialização, coloque o plist em /Library/LaunchDaemons/some.meaningful.name.plist
, adicione UserName
e GroupName
pares de chave / valor e use sudo
ao executar launchd
load. Para se livrar do item (se você realmente precisar sair do TeamViewer, por exemplo) simplesmente substitua load no comando acima com unload.
Como alternativa, o Lingon fornece uma interface gráfica para o lançamento e pode ser mais fácil.