x11vnc 出力を削除できません

x11vnc 出力を削除できません

私はディスプレイにタッチスクリーンを備えたUbuntuシステムを使用しています:0. Windowsでタッチスクリーンをリモートで制御できるようにx11vncを設定しました。良い結果。ただし、設定は次のとおりです。

2人のユーザーがいます(rootを除く)。タッチスクリーンに自動的にログインする制限付きユーザー(デフォルトでは権限とパスワードなし)と、複雑なパスワード、sudo権限などを持つ完全にプロビジョニングされたユーザー。制限されたユーザーがログインしたとき(タッチスクリーンがアクティブになったとき)にx11vncを実行することにのみ興味があるので、ファイルのx11vnc -loop &最後にコマンドを入れました/home/restricted/.profile。うまくいきます。ただし、そのユーザーは後で別のコマンドを実行する必要があるため、バックグラウンドプロセスでなければなりません(人のユーザーには非表示)。

私が経験している問題は、x11vncの出力が非常にうるさいということです。特にパスワードを使用せず(私は使用しません)ループなので繰り返し繰り返します。通常、これは問題ではありませんが、出力を/ dev / nullにリダイレクトすることは機能しません(以下の説明を参照)、sshを介してログインすると、出力が他のユーザーの端末に表示されます(実際には非常に迷惑です)。 、メンテナンスのためにそのアカウントを使用し、画面がいくつかのバックグラウンドプロセスの出力でいっぱいになると何もできないので、以下は私が得る出力の例です。

--- x11vnc loop: 1 ---

--- x11vnc loop: waiting for: 1551

###############################################################
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
#@                                                           @#
#@  **  WARNING  **  WARNING  **  WARNING  **  WARNING  **   @#
#@                                                           @#
#@        YOU ARE RUNNING X11VNC WITHOUT A PASSWORD!!        @#
#@                                                           @#
#@  This means anyone with network access to this computer   @#
#@  may be able to view and control your desktop.            @#
#@                                                           @#
#@ >>> If you did not mean to do this Press CTRL-C now!! <<< @#
#@                                                           @#
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
#@                                                           @#
#@  You can create an x11vnc password file by running:       @#
#@                                                           @#
#@       x11vnc -storepasswd password /path/to/passfile      @#
#@  or   x11vnc -storepasswd /path/to/passfile               @#
#@  or   x11vnc -storepasswd                                 @#
#@                                                           @#
#@  (the last one will use ~/.vnc/passwd)                    @#
#@                                                           @#
#@  and then starting x11vnc via:                            @#
#@                                                           @#
#@      x11vnc -rfbauth /path/to/passfile                    @#
#@                                                           @#
#@  an existing ~/.vnc/passwd file from another VNC          @#
#@  application will work fine too.                          @#
#@                                                           @#
#@  You can also use the -passwdfile or -passwd options.     @#
#@  (note -passwd is unsafe if local users are not trusted)  @#
#@                                                           @#
#@  Make sure any -rfbauth and -passwdfile password files    @#
#@  cannot be read by untrusted users.                       @#
#@                                                           @#
#@  Use x11vnc -usepw to automatically use your              @#
#@  ~/.vnc/passwd or ~/.vnc/passwdfile password files.       @#
#@  (and prompt you to create ~/.vnc/passwd if neither       @#
#@  file exists.)  Under -usepw, x11vnc will exit if it      @#
#@  cannot find a password to use.                           @#
#@                                                           @#
#@                                                           @#
#@  Even with a password, the subsequent VNC traffic is      @#
#@  sent in the clear.  Consider tunnelling via ssh(1):      @#
#@                                                           @#
#@    http://www.karlrunge.com/x11vnc/#tunnelling            @#
#@                                                           @#
#@  Or using the x11vnc SSL options: -ssl and -stunnel       @#
#@                                                           @#
#@  Please Read the documention for more info about          @#
#@  passwords, security, and encryption.                     @#
#@                                                           @#
#@    http://www.karlrunge.com/x11vnc/faq.html#faq-passwd    @#
#@                                                           @#
#@  To disable this warning use the -nopw option, or put     @#
#@  'nopw' on a line in your ~/.x11vncrc file.               @#
#@                                                           @#
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
###############################################################
20/05/2016 10:53:18 x11vnc version: 0.9.13 lastmod: 2011-08-10  pid: 1551
20/05/2016 10:53:18 XOpenDisplay("") failed.
20/05/2016 10:53:18 Trying again with XAUTHLOCALHOSTNAME=localhost ...
20/05/2016 10:53:18
20/05/2016 10:53:18 *** XOpenDisplay failed. No -display or DISPLAY.
20/05/2016 10:53:18 *** Trying ":0" in 4 seconds.  Press Ctrl-C to abort.
20/05/2016 10:53:18 *** 1 2 3 4
Invalid MIT-MAGIC-COOKIE-1 key20/05/2016 10:53:22 XOpenDisplay(":0") failed.
20/05/2016 10:53:22 Trying again with XAUTHLOCALHOSTNAME=localhost ...
Invalid MIT-MAGIC-COOKIE-1 key20/05/2016 10:53:22 XOpenDisplay(":0") failed.
20/05/2016 10:53:22 Trying again with unset XAUTHLOCALHOSTNAME ...
Invalid MIT-MAGIC-COOKIE-1 key20/05/2016 10:53:22

20/05/2016 10:53:22 ***************************************
20/05/2016 10:53:22 *** XOpenDisplay failed (:0)

*** x11vnc was unable to open the X DISPLAY: ":0", it cannot continue.
*** There may be "Xlib:" error messages above with details about the failure.

Some tips and guidelines:

** An X server (the one you wish to view) must be running before x11vnc is
   started: x11vnc does not start the X server.  (however, see the -create
   option if that is what you really want).

** You must use -display <disp>, -OR- set and export your $DISPLAY
   environment variable to refer to the display of the desired X server.
 - Usually the display is simply ":0" (in fact x11vnc uses this if you forget
   to specify it), but in some multi-user situations it could be ":1", ":2",
   or even ":137".  Ask your administrator or a guru if you are having
   difficulty determining what your X DISPLAY is.

** Next, you need to have sufficient permissions (Xauthority)
   to connect to the X DISPLAY.   Here are some Tips:

 - Often, you just need to run x11vnc as the user logged into the X session.
   So make sure to be that user when you type x11vnc.
 - Being root is usually not enough because the incorrect MIT-MAGIC-COOKIE
   file may be accessed.  The cookie file contains the secret key that
   allows x11vnc to connect to the desired X DISPLAY.
 - You can explicitly indicate which MIT-MAGIC-COOKIE file should be used
   by the -auth option, e.g.:
       x11vnc -auth /home/someuser/.Xauthority -display :0
       x11vnc -auth /tmp/.gdmzndVlR -display :0
   you must have read permission for the auth file.
   See also '-auth guess' and '-findauth' discussed below.

** If NO ONE is logged into an X session yet, but there is a greeter login
   program like "gdm", "kdm", "xdm", or "dtlogin" running, you will need
   to find and use the raw display manager MIT-MAGIC-COOKIE file.
   Some examples for various display managers:

     gdm:     -auth /var/gdm/:0.Xauth
              -auth /var/lib/gdm/:0.Xauth
     kdm:     -auth /var/lib/kdm/A:0-crWk72
              -auth /var/run/xauth/A:0-crWk72
     xdm:     -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk
     dtlogin: -auth /var/dt/A:0-UgaaXa

   Sometimes the command "ps wwwwaux | grep auth" can reveal the file location.

   Starting with x11vnc 0.9.9 you can have it try to guess by using:

              -auth guess

   (see also the x11vnc -findauth option.)

   Only root will have read permission for the file, and so x11vnc must be run
   as root (or copy it).  The random characters in the filenames will of course
   change and the directory the cookie file resides in is system dependent.

See also: http://www.karlrunge.com/x11vnc/faq.html

 --- x11vnc loop: sleeping 2000 ms ---


 --- x11vnc loop: 2 ---

繰り返されるだけです。

ディスプレイの電源を入れることができないと鳴りますが、動作します。制限されたユーザーはすでにこのコマンドを実行して接続していますが、そのユーザーも同じ操作を試して接続できないためです。

なぜこれが起こるのですか?明らかに私の理解にはいくつかの穴があります。私が試したさまざまなアプローチは次のとおりです。


出力を/dev/nullにリダイレクトする

同じ場所で/home/restricted/.profile既存のコマンドx11vnc -loop &x11vnc -loop > /dev/null 2>&1 &

これは何の影響も与えず、出力はまだ他のユーザーの端末にあり(明らかに)消えません。


nohupを使用したコマンドの実行

バックから/home/restricted/.profile既存のコマンドx11vnc -loop &nohup x11vnc -loop &

今回も全く効果がありません。出力は依然として存在します。 Nohupはnohup.outファイルも生成しません。少なくとも私はそれを見つけることができませんでした。

仕上げるためにもう一度試しましたが、nohup x11vnc -loop > /dev/null 2>&1 &何の変更もありませんでした。


x11vncをデーモンとして起動

ここで私は何が間違っているのか気づき始めました。おそらく/home/restricted/.profileこのようなものが間違って配置されたからではないかと思いました。そのため、起動時に実行されるスクリプトを作成し、/etc/init.dフレームワークファイルの例に従ってリンクしました。update-rc.d

x11vncは再び動作しますが、すべての端末に出力が表示されます。


画面からx11vncを起動

この問題を解決するための最後の試みは、コマンドをスクリーンセッションに入れることでした。 Screenは通常このような問題を解決しますが、今回はそうではありません。

では次のように/home/restricted/.profile置き換えます。x11vnc -loop &screen -d -R x11vnc x11vnc -loop

今回はx11vncは機能しなくなりましたが(Windowsクライアントを介して接続できません)、すべての端末に出力があります。


繰り返しますが、明らかにx11vncまたは起動時のプロセスの作成については理解していません。

上でわかるように、私はしばらくこの問題を解決してきましたが、Web上でこれに関連する他のものを見つけることができません。だからここで助けてください。よろしくお願いします。

ベストアンサー1

出力リダイレクトが>&私にとって効果的です。

x11vnc -repeat -noxdamage -ncache 10 -forever -loop -rfbauth &> x11vnc.log

おすすめ記事