私のwindows 7
ラップトップからlinux
経由で接続しているリモートの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
このセッションをエレガントに終了させるにはどうすればいいですか?私はkill -9 <pid>
がそれを実行することを知っていますが、私はそれが強力なクリーンであり、ファイルの破損につながるかもしれないと思います。
P.S:私はまた、このソースから を読んでvncserverからのkillオプションを使用しますが、どうやってディスプレイ#を理解するかわかりません。
お気づきのとおり、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 [...]
それで、私はそれらがディスプレイ番号:1
と:2
でそれぞれVNCサーバーを表していることを知っています、そして
vncserver -kill :1
vncserver -kill :2
あなたの場合では、あなたはあなたの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
の後にそのファイルを削除すると、ビジネスに戻ります。