이것이 StackOverflow에 속하는지 여기에 속하는지는 확실하지 않지만 이러한 프로그램은 Ubuntu의 한 버전에서 작동하므로 여기서 시도해 보겠습니다.
우리는 하루에 한 번 서버에서 가상 X 디스플레이를 시작한 다음 X 디스플레이가 필요한 여러 프로그램을 실행하는 작은 Python 애플리케이션을 가지고 있습니다. 이 프로그램은 Ubuntu 10.04에서 제대로 실행되었으며 12.04 서버에서도 계속해서 정상적으로 실행됩니다.
이제 우리는 모든 전제 조건이 충족되었음에도 불구하고 14.04로 서버 출시를 고려하고 있습니다(최신 버전의Py 가상 디스플레이 vnc 서버를 닫으세요).
14.04에서 이 프로그램은 실패합니다. 디버깅의 가장 큰 문제는 12.04 서버에서 볼 수 있는 것처럼 X 화면을 볼 수 없다는 것입니다.비밀번호를 물어보세요. 나는 이것이 tightvncserver
소프트웨어의 일부 보안 변경일 것으로 예상했지만 12.04와 14.04 모두에서 Ubuntu 특정 버전은 다르지만(6.2 대 6.4) 버전 1.3.9입니다.
클라이언트 컴퓨터에서 동일한 VNC 클라이언트를 사용하여 두 서버에 연결합니다.
비밀번호 프롬프트를 없애고 어떤 (기타) 오류가 있는지 계속 확인하려면 어떻게 해야 합니까? 서버가 시작된 이후로 비밀번호가 설정되지 않았다고 확신합니다. 비밀번호가 무엇인지 추측할 수 없습니다.
답변1
Xvnc -version
(14.04)이 다음을 제공하는지 확인해야 합니다 .
Xvnc version TightVNC-1.3.9
pyvirtualdisplay로 생성된 vnc 서버 인스턴스에 연결하면 비밀번호를 묻는 메시지가 표시되지 않을 수 있습니다.
/usr/bin/Xvnc
그 이유는 pyvirtualdisplay가 파일이 존재하는지 확인하고 xnvc
백엔드가 지정되면 실행 파일을 호출하여 ightvncserver가 설치되는지 확인하기 때문입니다 . 그러나 파일은 관리되는 대안 /etc/alternatives/
에 대한 링크입니다 vnc4server
(VNC를 통해 데스크톱을 공유하려는 경우 이 서버를 설치하려면 비밀번호 IIRC가 필요함).
다음 명령을 실행하여 대안을 변경할 수 있습니다 Xvnc
.
sudo update-alternatives --config Xvnc
그리고 이 tightvncserver
옵션을 선택하세요. 이것이 (현재) 선택한 다른 서버 대안에 의존하는 프로그램에 보안 부작용이 있는지 확실하지 않습니다.
따라서 가능하다면 당기는 소스를 변경 pyvirtualdisplay
하고 다음 줄을 추가해야 합니다(호출하기 전에 Display()
).
import pyvirtualdisplay.xvnc
pyvirtualdisplay.xvnc.PROGRAM = "Xtightvnc"
이렇게 하면 pyvirtualdisplay 라이브러리가 올바른 서버 바이너리를 사용하여 Xvnc
선택한 대안을 우회하게 됩니다.