TeamViewer только работает, когда GUI был запущен

У меня есть рабочий TeamViewer, который я могу успешно подключить с тем, после того, как я запустил GUI TeamViewer. К сожалению, хотя, я не могу соединиться со своим компьютером, когда GUI TeamViewer не запущен. Вся документация, которая может быть найдена там, предполагает что, выполняя демона TeamViewer teamviewerd достаточно должен смочь удаленно соединиться с машиной, но она не походит, который имеет место для меня.

Без TeamViewer GUI (просто teamviewerd)

Вывод teamviewer status:

 TeamViewer                           11.0.57095  (DEB) 

 teamviewerd status                   ● teamviewerd.service - TeamViewer remote control daemon
   Loaded: loaded (/etc/systemd/system/teamviewerd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sa 2016-04-30 17:01:55 CEST; 11min ago
  Process: 15518 ExecStart=/opt/teamviewer/tv_bin/teamviewerd -d (code=exited, status=0/SUCCESS)
 Main PID: 15521 (teamviewerd)
   CGroup: /system.slice/teamviewerd.service
           └─15521 /opt/teamviewer/tv_bin/teamviewerd -d

Apr 30 17:01:54 rvaio systemd[1]: Starting TeamViewer remote control daemon...
Apr 30 17:01:55 rvaio systemd[1]: teamviewerd.service: PID file /var/run/teamviewerd.pid not readable (yet?) after start: No such file or directory
Apr 30 17:01:55 rvaio systemd[1]: Started TeamViewer remote control daemon. 

 TeamViewer ID:                        123456789

Вывод sudo netstat -ntap | grep teamviewer:

tcp        0      0 0.0.0.0:5938            0.0.0.0:*               LISTEN      1447/teamviewerd
tcp        0      0 127.0.0.1:5940          0.0.0.0:*               LISTEN      1447/teamviewerd
tcp6       0      0 :::5938                 :::*                    LISTEN      1447/teamviewerd

С запущенным TeamViewer GUI

Вывод teamviewer status:

 TeamViewer                           11.0.57095  (DEB) 

 teamviewerd status                   ● teamviewerd.service - TeamViewer remote control daemon
   Loaded: loaded (/etc/systemd/system/teamviewerd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sa 2016-04-30 17:01:55 CEST; 18min ago
  Process: 15518 ExecStart=/opt/teamviewer/tv_bin/teamviewerd -d (code=exited, status=0/SUCCESS)
 Main PID: 15521 (teamviewerd)
   CGroup: /system.slice/teamviewerd.service
           └─15521 /opt/teamviewer/tv_bin/teamviewerd -d

Apr 30 17:01:54 rvaio systemd[1]: Starting TeamViewer remote control daemon...
Apr 30 17:01:55 rvaio systemd[1]: teamviewerd.service: PID file /var/run/teamviewerd.pid not readable (yet?) after start: No such file or directory
Apr 30 17:01:55 rvaio systemd[1]: Started TeamViewer remote control daemon. 

 TeamViewer ID:                        123456789

Вывод sudo netstat -ntap | grep teamviewer:

tcp        0      0 0.0.0.0:5938            0.0.0.0:*               LISTEN      15521/teamviewerd
tcp        0      0 127.0.0.1:5940          0.0.0.0:*               LISTEN      15521/teamviewerd
tcp        0      0 127.0.0.1:5940          127.0.0.1:48475         ESTABLISHED 15521/teamviewerd
tcp6       0      0 :::5938                 :::*                    LISTEN      15521/teamviewerd
tcp6       0      0 2003:72:2d76:2701:46132 2a01:488:2001:1c01:5938 ESTABLISHED 15521/teamviewerd

Как Вы видите, запущение GUI заставляет два соединения становиться установленными, в отличие от этого, только с демоном.

2
задан 7 May 2016 в 19:02

2 ответа

Подробно останавливаясь на том, какой отправленный @JohnOrion, у меня есть решение, которое более надежно. Вместо того, чтобы всегда уничтожить окна TeamViewer, это просто закрывает эти два окна при запуске программы и затем прекращает закрывать их в будущем. Вот то, что необходимо сделать:

  1. Установка devilspie и procmail.

    sudo apt-get install devilspie procmail
    
  2. Впишите в это ~/.devilspie/TeamViewer.ds:

    (if
        (or
            (and
                (is (application_name) "TeamViewer")
                (is (window_name) "TeamViewer")
            )
            (and
                (is (application_name) "Computers & Contacts")
                (is (window_name) "Computers & Contacts")
            )
        )
        (begin
            (close)
            (spawn_async "~/bin/teamviewer/tvwindow")
        )
    )
    
  3. Создайте каталог, где Вы хотите определить местоположение некоторых сценариев. Я выбрал ~/bin/teamviewer, но можно выбрать то, что Вы любите. При изменении этого каталога удостоверьтесь, что Вы также изменяете его в сценарии на шаге 2.

    mkdir -p ~/bin/teamviewer
    
  4. Запишите это содержание в ~/bin/teamviewer/tvwindow (снова, изменение каталог, если Вы хотите):

    #!/usr/bin/env bash
    
    source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/vars"
    
    lockfile teamviewerstartup.lock
    
    # read remaining windows
    REMAINING_WINDOWS=$(cat "$REMAINING_WINDOWS_FILE")
    REMAINING_WINDOWS_NOW=$(($REMAINING_WINDOWS - 1))
    
    if [ $REMAINING_WINDOWS_NOW -eq 0 ]; then
        # TeamViewer has started up completely, kill devilspie
        kill $(cat "$DEVILSPIE_PID_FILE")
        # Also remove temporary files
        rm -f "$DEVILSPIE_PID_FILE"
        rm -f "$REMAINING_WINDOWS_FILE"
    else
        # One or more windows to go, write the decremented value to the file
        echo -n "$REMAINING_WINDOWS_NOW" > "$REMAINING_WINDOWS_FILE"
    fi
    
    rm -f teamviewerstartup.lock
    
  5. Запишите это содержание в ~/bin/teamviewer/tvminimizedstart (снова, изменение каталог, если Вы хотите):

    #!/usr/bin/env bash
    
    source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/vars"
    
    nohup devilspie > /dev/null 2>&1 &
    DEVILSPIE_PID=$!
    
    lockfile teamviewerstartup.lock
    
    # Write PID of devilspie process
    echo -n "$DEVILSPIE_PID" > "$DEVILSPIE_PID_FILE"
    # Set remaining to be closed windows to 2
    echo -n "2" > "$REMAINING_WINDOWS_FILE"
    
    rm -f teamviewerstartup.lock
    
    nohup teamviewer >/dev/null 2>&1 &
    
  6. Запишите это содержание в ~/bin/teamviewer/vars (снова, изменение каталог, если Вы хотите):

    #!/usr/bin/env bash
    
    DEVILSPIE_PID_FILE="$HOME/bin/teamviewer/devilspiepid"
    REMAINING_WINDOWS_FILE="$HOME/bin/teamviewer/remaining-windows"
    
  7. Сделайте их исполняемым файлом.

    chmod +x ~/bin/teamviewer/tvwindow ~/bin/teamviewer/tvminimizedstart ~/bin/teamviewer/vars
    

Для использования этого решения работайте tvminimizedstart сценарий:

~/bin/teamviewer/tvminimizedstart
1
ответ дан 8 May 2016 в 05:02
  • 1
    Вы могли дать мне некоторые подсказки? I' m в новинку для этого. – Daisuke Jigen 16 March 2018 в 04:19

Я имею эту проблему также и нашел, что это может быть с самой программой. Мое решение состояло в том, чтобы использовать программу, доступную в Ubuntu, названной gDevilspie.

необходимо будет установить два правила в программе для сокрытия главного окна и списка контактов. enter image description here

Вот то, как я настроил TeamViewer

enter image description here

enter image description here

, вот настройки, которые я использовал:

Для TeamViewer:

application_name equals Computers & Contacts 
window_name      equals Computers & Contacts 

снимок экрана показывает действия для того окна

Для TeamViewer2:

application_name equals TeamViewer 
window_name      equals TeamViewer 

действия, которые я использовал для этого правила: близко

Это для пути мой TeamViewer является установкой.. это закроет главное окно и оставит его находящийся в моем выполнении лотка.

Теперь даже при том, что это находится в выполнении лотка... Если я хочу просмотреть его, я не могу нажать на значок и выбрать Show TeamViewer, или это просто откроется и закроется снова. Я должен остановиться, gDevilspie для открытия / просматривают программу.. просто имейте это в виду

4
ответ дан 8 May 2016 в 05:02
  • 1
    Можно ли отредактировать ответ и переформатировать ли его? – Peshmerge 14 March 2018 в 02:38

Другие вопросы по тегам:

Похожие вопросы: