Linuxで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>はそれを行うことを知っていますが、それは強制的にきれいであり、破損したファイルにつながる可能性があると思います。

PS: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 Xvncvncserverこのツールを呼び出す単なるラッパースクリプトです)。

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