리눅스에서 vncsession을 죽이는 올바른 방법은 무엇입니까?


25

랩톱 linux에서 연결하는 원격 상자 에서 다음 명령을 실행하면 다음과 같은 결과 가 나타납니다.windows 7VNC

 [subhrcho@slc04lyo ~]$ ps -ef|grep vnc
subhrcho 20113 19804  0 21:40 pts/8    00:00:00 grep vnc
subhrcho 27486     1  0 Jan28 ?        00:05:35 Xvnc :1 -desktop slc04lyo:1 (subhrcho) -httpd /usr/share/vnc/classes -auth /home/subhrcho/.Xauthority -geometry 1680x1050 -depth 16 -rfbwait 30000 -rfbauth /home/subhrcho/.vnc/passwd -rfbport 5901 -pn
subhrcho 27493     1  0 Jan28 ?        00:00:00 vncconfig -iconic

이 세션을 어떻게 우아하게 죽일 수 있습니까? 나는 그것을 kill -9 <pid>할 것이라는 것을 알고 있지만 나는 그것이 강력하고 깨끗하며 파일이 손상 될 수 있다고 생각합니다.

추신 : 나는 또한 이 소스 에서 vncserver의 kill 옵션을 사용하기 위해 읽었 지만 display #을 알아내는 방법을 모르겠습니다.

답변:


30

당신이 발견으로의 man vncserver:

  -kill :display#
          This kills a VNC desktop previously started with vncserver. It does
          this by killing the Xvnc process, whose process ID is stored in the
          file "$HOME/.vnc/host:display#.pid". It actually ignores anything
          preceding a ":" in its argument. This can be useful so you can write
          "vncserver -kill $DISPLAY", for example at the end of your xstartup
          file after a particular application exits.

디스플레이 번호는 수동으로 다르게 설정하지 않은 경우 디스플레이의 포트 번호에 연결됩니다.

Display number = (Port number) ‒ 5900

예 : 포트 5901 → 표시 : 1. 이 정보는 다음 위치에서 찾을 수 있습니다 man Xvnc( vncserver이 도구를 호출하는 랩퍼 스크립트 임).

   -rfbport port
          Specifies the TCP port on which Xvnc listens for connections from
          viewers (the protocol used in VNC is called RFB - "remote
          framebuffer").  The default is 5900 plus the display number.

숫자를 모르는 경우 (그러나 서버에 연결하려는 경우 숫자를 알아야 함) 예 ps ax | grep vnc를 들어 정보를 확인할 수 있습니다 . 로컬로 그렇게하면 프로세스가 보입니다.

25697 ?        S     55:38 Xvnc4 :1 [...]
[...]
30481 ?        S     17:57 Xvnc4 :2 [...]

따라서 나는 그들이 디스플레이 번호로 VNC 서버를 나타내고 있음을 알 수 :1:2각각에 의해 살해 될 수있다

vncserver -kill :1
vncserver -kill :2

귀하의 경우, 표시 번호는 출력에 :1나열된 서버의 번호임을 나타 ps냅니다.


1

위의 답변을 시도했지만 효과가 없었습니다. 이 질문과 같이 오류 메시지가 표시되었습니다 .VNC 프로세스 수동 종료

그래서 수동으로 죽여야했습니다. kill -9를 시도한 후 더 이상 rdp로 로그인 할 수 없습니다. 내가 가지고 xrdp_mm_process_login_response: login failed내가 로그인하려고 할 때.

대답은 여기에 있습니다 : http://linuxtoolkit.blogspot.com/2013/03/xrdpmmprocessloginresponse-login-failed.html

기본적으로 Xvnc 서버가 종료 될 때 정리되지 않은 세션 파일이 있습니다. 파일의 이름은 표시 용이므로 표시되는 경우 : 12 /tmp/.X11-unix/X12입니다. 나중에 파일을 삭제 kill -9하면 업무를 다시 시작합니다.


스크립트 나는 자동 킬 유휴 세션에 쓴 : gist.github.com/mnebuerquo/e825530cf2bfd363b6c3cd82fe697d94
Mnebuerquo에게
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.