TeamViewer는 GUI가 시작된 경우에만 실행됩니다.

TeamViewer는 GUI가 시작된 경우에만 실행됩니다.

TeamViewer의 GUI를 시작한 후 성공적으로 연결할 수 있는 작동 중인 TeamViewer가 있습니다. 하지만 불행하게도 TeamViewer의 GUI가 시작되지 않으면 컴퓨터에 연결할 수 없습니다. 거기에서 찾을 수 있는 모든 문서에서는 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를 시작하면 데몬과 달리 두 개의 연결이 설정됩니다.

답변1

나 역시 이 문제를 겪고 있으며 프로그램 자체에 문제가 있을 수 있음을 발견했습니다. 내 해결책은 Ubuntu에서 사용 가능한 gDevilspie라는 프로그램을 사용하는 것이었습니다.

메인 창과 연락처 목록을 숨기려면 프로그램에서 두 가지 규칙을 설정해야 합니다. 여기에 이미지 설명을 입력하세요

TeamViewer를 설정하는 방법은 다음과 같습니다.

여기에 이미지 설명을 입력하세요

여기에 이미지 설명을 입력하세요

내가 사용한 설정은 다음과 같습니다.

TeamViewer의 경우:

application_name equals Computers & Contacts 
window_name      equals Computers & Contacts 

스크린샷은 해당 창에 대한 작업을 보여줍니다.

TeamViewer2의 경우:

application_name equals TeamViewer 
window_name      equals TeamViewer 

이 규칙에 사용한 작업은 다음과 같습니다.

이것은 내 TeamViewer가 설정되는 방식입니다. 이렇게 하면 기본 창이 닫히고 트레이가 실행 중인 상태로 유지됩니다.

이제 실행 중인 트레이에 있지만... 보고 싶은 경우 아이콘을 클릭하고 TeamViewer 표시를 선택할 수 없습니다. 그렇지 않으면 다시 열렸다가 닫힐 것입니다. 프로그램을 열거나 보려면 gDevilspie를 중지해야 합니다.. 명심하세요

답변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

관련 정보