![VNC에서 데스크톱이 활성 상태임을 표시하는지 확인하고 그 수를 확인합니다.](https://linux55.com/image/8433/VNC%EC%97%90%EC%84%9C%20%EB%8D%B0%EC%8A%A4%ED%81%AC%ED%86%B1%EC%9D%B4%20%ED%99%9C%EC%84%B1%20%EC%83%81%ED%83%9C%EC%9E%84%EC%9D%84%20%ED%91%9C%EC%8B%9C%ED%95%98%EB%8A%94%EC%A7%80%20%ED%99%95%EC%9D%B8%ED%95%98%EA%B3%A0%20%EA%B7%B8%20%EC%88%98%EB%A5%BC%20%ED%99%95%EC%9D%B8%ED%95%A9%EB%8B%88%EB%8B%A4..png)
언제SSH 로깅Linux 컴퓨터에 접속하여 X-Windows 데스크탑이 있는지 어떻게 알 수 있습니까?전시하다세션(예: VNCServer에 의해 시작된 1개)이 활성 상태입니다. 해당 세션의 번호는 무엇입니까?
이유:
GUI가 필요한 iMacros FireFox 스크립트를 원격으로 실행하는 경우가 있는데, 데스크톱이 실행되지 않으면 다음을 실행하여 실행해야 합니다.
vncserver -name Computer
시작된 경우 해당 번호(예: :1.0
:)를 알고 나면 다음을 수행합니다.
export DISPLAY=:1.0
firefox imacros://run/?m=MyMacro.iim
나는 종종 다음을 시도합니다.
$ sudo ps -e | grep "vnc" -i
1685 ? 06:28:53 Xtightvnc
하지만 숫자는 알 수 없습니다(예: :1.0
).
요청 시 추가 데이터 제공(:1에 실행 중인 VNC가 있음):
$ sudo netstat -lnp|grep -i vnc
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 1685/Xtightvnc
tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 1685/Xtightvnc
unix 2 [ ACC ] STREAM LISTENING 11847 1685/Xtightvnc /tmp/.X11-unix/X1
답변1
기본적으로 vnc는 포트 5901을 디스플레이 1로 사용합니다. 따라서 netstat를 사용하여 모든 수신 프로세스를 나열하고 그로부터 디스플레이를 계산할 수 있습니다.
export DISPLAY="$(netstat -ln |
awk '$4~/:59[0-9][0-9]$/{
v=$4; sub(/.*:/,"",v);
print ":" v-5900; exit}')"
netstat 출력이 필드 4와 같다고 가정합니다 0.0.0.0:5901
. awk는 ":" 앞의 모든 항목을 제거하고 여기에서 5900을 뺍니다. DISPLAY 환경은 다음 Firefox로 설정되어 있습니다. 이것을 vncserver의 시작과 결합하려면 getdisplay와 같은 함수에 넣고 다음과 같이 사용하십시오.
getdisplay(){
... as above
}
getdisplay
if [ -z "$DISPLAY" ]
then vncserver -name Computer
getdisplay
fi
firefox ...