有时 TeamViewer会断开本身(或断开连接)与其互联网主服务器的连接。
我正在编写一个脚本,用于检查连接是否丢失,如果是,则杀死并重新打开相关进程,再次使TeamViewer启动并运行。
问题是:我不知道如何发现 TeamViewer已失去其远程访问功能(这是:远程访问和控制的功能) 。
经过测试直到现在:
如何以编程方式了解TeamViewer是否已断开连接?
我不知道这种方法在平台之间是否有所不同,但至少我想了解一些Linux shell的解决方案。如果可能的话,打击。
答案 0 :(得分:0)
您是否考虑过捕获信号(如果可能)并执行将重启TeamViewer的功能。
从脚本启动并捕获退出信号
function restartTV {
# re-start TeamViewrt
sudo /etc/init.d/something start
}
trap finish EXIT # or appropriate signal
sudo /etc/init.d/something stop
# Do the work...
答案 1 :(得分:0)
可能我来晚了,但是遇到了同样的问题并找到了可能的解决方案。我正在使用teamviewer 12。
我注意到,就我而言,有时不启动某些与GUI相关的进程,因此如果我使用ssh并使用以下命令检查teamviewer进程的列表,则该计算机不在计算机和联系人列表中在线:
ps -ef | grep [t]eamviewer
我只有一个过程,teamviewer守护程序:
root 1808 1 0 09:22 ? 00:00:53 /opt/teamviewer/tv_bin/teamviewerd -d
但是,当一切都好时,我有了:
root 1808 1 0 09:22 ? 00:00:53 /opt/teamviewer/tv_bin/teamviewerd -d
rocco 10975 8713 0 09:31 ? 00:00:58 /opt/teamviewer/tv_bin/wine/bin/wineserver
rocco 11064 10859 0 09:31 ? 00:00:33 /opt/teamviewer//tv_bin/TVGuiSlave.64 31 1
rocco 11065 10859 0 09:31 ? 00:00:28 /opt/teamviewer//tv_bin/TVGuiDelegate 31 1
因此,简单地计算出对我来说有效的过程数即可。
#!/bin/bash
online() {
## Test connection
ping -c1 www.google.com > /dev/null
return $?
}
online
if (test $? -eq 0)
then
network=$(ps -ef | grep [t]eamviewer | wc -l)
if (test $network -gt 3)
then
echo Machine online, teamviewer connected
else
echo Machine online, teamviewer not connected, trying restart daemon
sudo teamviewer --daemon restart
fi
fi