2013-02-11 05:50:52 +0000 2013-02-11 05:50:52 +0000
25
25

Linuxでvncsessionを強制終了させる正しい方法は何ですか?

linuxラップトップからwindows 7経由で接続しているリモートのVNCボックスで以下のコマンドを実行すると、以下のようになります :

[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

このセッションをエレガントに強制終了させるにはどうしたらいいですか?

&001

P.S: 私はまた、このソースからでvncserverからkillオプションを使用することを読んだが、display#を把握する方法がわからない。

回答 (2)

30
30
30
2013-02-11 07:00:49 +0000

あなたが気づいたように、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.

ディスプレイ番号は、1つが手動でそれを設定していない場合は、ディスプレイのポート番号に接続されています(そして、異なる)、どこで

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 [...]

を見て、したがって、私は、それらがそれぞれ表示番号:1:2を持つVNCサーバーを表し、

vncserver -kill :1
vncserver -kill :2

によって殺される可能性があることを知っています あなたの場合、あなたは、表示番号が:1の出力にリストされているサーバーのためのpsであることを見ています。

1
1
1
2016-06-23 18:47:39 +0000

私は上記の答えを試してみましたが、それは私のために動作しませんでした。この質問のように Killing VNC Process Manually

というエラーメッセージが出たので、手動で kill しなければなりませんでした。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以降に削除すれば元に戻ります。