No puedo deshacerme de la salida x11vnc

No puedo deshacerme de la salida x11vnc

Estoy en un sistema Ubuntu que tiene una pantalla táctil configurada en pantalla: 0. Quería poder controlar esta pantalla táctil de forma remota desde Windows, así que configuré x11vnc. Funciona muy bien. Pero aquí está la configuración:

Tengo dos usuarios (excluyendo root). Un usuario restringido (básicamente sin permisos ni contraseña) que inicia sesión automáticamente en la pantalla táctil, y un usuario completamente configurado con una contraseña compleja, permiso sudo, etc. Solo me importa iniciar x11vnc cuando el usuario restringido inicia sesión (pantalla táctil). se activa), así que puse el comando x11vnc -loop &al final del archivo /home/restricted/.profile. Funciona bien. Sin embargo, tenga en cuenta que tiene que ser un proceso en segundo plano porque hay otros comandos que este usuario debe ejecutar (ocultos para el usuario humano) más adelante.

El problema que tengo es que x11vnc hace mucho ruido con su salida. Especialmente si no usas una contraseña (que yo no uso), y es un bucle que sigue repitiéndose. Por lo general, esto no sería un problema, pero no solo redirigir la salida a /dev/null no funciona (se explica a continuación), sino que la salida aparece en la terminal del otro usuario cuando inicio sesión a través de ssh (lo cual es realmente molesto porque uso esa cuenta para mantenimiento y es imposible hacer nada cuando la pantalla se llena con el resultado de algún proceso en segundo plano. Aquí hay un ejemplo del resultado que obtengo:

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

Y eso se repite una y otra vez.

Me grita que no puedo abrir la pantalla, pero funciona. Supongo que esto se debe a que el usuario restringido ya ejecutó este comando y se conectó bien, pero ahora este usuario también está intentando hacerlo, por lo que no puede conectarse.

¿Por qué está pasando esto? Claramente hay algún vacío en mi comprensión. Estas son las diferentes cosas que probé:


Redirigir la salida a /dev/null

En el mismo lugar, /home/restricted/.profileintenté reemplazar el comando existente x11vnc -loop &con x11vnc -loop > /dev/null 2>&1 &.

Esto no tuvo ningún efecto, la salida todavía estaba en la terminal de otro usuario y (obviamente) no desapareció.


Ejecutando comando con nohup

Nuevamente en /home/restricted/.profile, intenté reemplazar el comando existente x11vnc -loop &con nohup x11vnc -loop &.

Una vez más, esto no tuvo ningún efecto. La producción todavía estaba allí. Nohup ni siquiera creó un archivo nohup.out. Al menos no pude encontrarlo.

Para finalizar, también lo intenté nohup x11vnc -loop > /dev/null 2>&1 &de nuevo, nada cambió.


Iniciando x11vnc como demonio

Aquí comencé a darme cuenta de que estaba haciendo algo mal. Pensé que tal vez era porque /home/restricted/.profileno era el lugar adecuado para poner este tipo de cosas. Así que hice un script /etc/init.dpara ejecutarlo en el arranque e hice el enlace update-rc.dsiguiendo el ejemplo del archivo esqueleto.

Una vez más, x11vnc funcionó, pero la salida estaba en todos mis terminales.


Iniciando x11vnc en la pantalla

Mi último intento de solucionar este problema fue lanzar el comando en una sesión de pantalla. La pantalla normalmente me soluciona problemas como este... Pero esta vez no.

En /home/restricted/.profile, lo reemplacé x11vnc -loop &conscreen -d -R x11vnc x11vnc -loop

Esta vez, x11vnc ya no funcionó (no pudo conectarse a través del cliente de Windows), pero la salida TODAVÍA estaba en todos los terminales.


Nuevamente, claramente hay algo que no entiendo ni sobre x11vnc ni sobre cómo generar un proceso al arrancar.

Como habrás podido deducir de lo anterior, he estado solucionando este problema por un tiempo y no puedo encontrar nada más en la web al respecto. Así que ayudar aquí sería fantástico. Gracias de antemano.

Respuesta1

La >&salida para redirigir funcionó para mí.

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

información relacionada