No se puede deshacer de la salida x11vnc

Estoy en un sistema Ubuntu que tiene una pantalla táctil configurada en la 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 configuration:

Tengo dos usuarios (excluida la raíz). Un usuario restringido (básicamente sin permissions y sin contraseña) que inicia session automáticamente en la pantalla táctil, y un usuario completamente configurado con una contraseña compleja, permiso de sudo, etc. Solo me importa comenzar x11vnc cuando el usuario restringido inicia session (pantalla táctil) se activa), entonces puse el command x11vnc -loop & al final del file /home/restricted/.profile . Funciona bien. Tenga en count, sin embargo, que tiene que ser un process en segundo plano porque hay otros commands que este usuario debe ejecutar (ocultos para el usuario humano) más adelante.

El problema que estoy teniendo es que x11vnc es muy ruidoso con su salida. Especialmente si no usas una contraseña (que yo no), y es un bucle, así que sigue repitiendo. Por lo general, esto no sería un problema, pero no solo está networkingireccionando la salida a / dev / null que no funciona (se explica a continuación), sino que la salida está apareciendo en el terminal del otro usuario cuando inicio session a través de ssh (lo cual es molesto porque uso esa count para el mantenimiento y es imposible hacer nada cuando la pantalla se está llenando con el resultado de un process en segundo plano. Aquí hay un ejemplo de la salida 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 desinetworking 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 desinetworking X DISPLAY. - You can explicitly indicate which MIT-MAGIC-COOKIE file should be used by the -auth option, eg: 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 solo se repite sin cesar.

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

¿Por qué está pasando esto? Claramente hay un agujero en mi comprensión. Estas son las diferentes cosas que intenté:


Redirigir la salida a / dev / null

En el mismo lugar, /home/restricted/.profile intenté replace el command existente x11vnc -loop & con x11vnc -loop > /dev/null 2>&1 & .

Esto tuvo un efecto nulo, la salida todavía estaba en el terminal de otro usuario y (obviamente) no desapareció.


Ejecutando command con nohup

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

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

Para completar, también intenté nohup x11vnc -loop > /dev/null 2>&1 & nuevamente, nada cambió.


Iniciando x11vnc como daemon

Aquí, comencé a darme count de que estaba haciendo algo mal. Pensé que tal vez era porque /home/restricted/.profile era el lugar equivocado para poner este tipo de cosas. Así que hice una secuencia de commands en /etc/init.d para ejecutar en el arranque e hice el enlace con update-rc.d siguiendo el ejemplo del file esqueleto.

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


Iniciando x11vnc en pantalla

Mi último bash de arreglar esto fue lanzar el command en una session de pantalla. Normalmente, la pantalla soluciona problemas como este para mí … Pero esta vez no.

En /home/restricted/.profile , reemplacé x11vnc -loop & con screen -d -R x11vnc x11vnc -loop

Esta vez, x11vnc ya no funcionaba (no se pudo conectar a través del cliente de Windows), pero la salida STILL estaba en todos los terminales.


Nuevamente, claramente hay algo que no estoy entendiendo sobre x11vnc o generando un process en el arranque.

Como habrás podido deducir de lo anterior, he estado en este problema por un time y no puedo encontrar nada más en la web sobre esto. Entonces la ayuda aquí sería increíble. Gracias por adelantado.