Como NO perder trabajo por caidas de SSH (Usando VNC)
Si entendiste el titulo, es porque en algún momento has tenido este problema. Te has visto corriendo largas consultas SQL o ejecutando procesos eternos que por fallas de red o timeout en el servidor han quedado perdidos junto con la sesión SSH. Probablemente este post no solucionará el problema del trabajo perdido, pero si puede evitar que vuelva a ocurrir.
Instalación de VNC Server
En esta ocasión estamos partiendo con una instalación limpia de Ubuntu Server 9.04, solamente he instalado OpenSSH.
$ sudo apt-get install vnc4server xterm twm
Ahora que tenemos vnc server instalado, debemos asignarle una contraseña para nuestra cuenta, en este caso, como uso la cuenta felipe iniciará sesión con ese usuario con la clave que asignemos. Para esto ejecutamos el siguiente comando
felipe@ubuntu-vm-01:~/.vnc$ vncpasswd
Si no lo hacemos, al ejecutar vncserver nos pedirá una clave. Si ya tiene una asignada, usará esa. Para iniciar el servidor de vnc ejecutamos
felipe@ubuntu-vm-01:~/.vnc$ vncserver
New ‘ubuntu-vm-01:1 (felipe)’ desktop is ubuntu-vm-01:1
Starting applications specified in /home/felipe/.vnc/xstartup
Log file is /home/felipe/.vnc/ubuntu-vm-01:1.log
Por defecto, vnc configura las siguientes aplicaciónes, que previamente instalamos, en el archivo xstartup ubicado en /home/usuario/.vnc/xstartup
Listo! ya tenemos el servidor VNC instalado
Usando VNC Server
Iniciar un escritorio:
- Ejecutamos: felipe@ubuntu-vm-01:~$ vncserver
- Buscar en la salida por una linea de este tipo: New ‘ubuntu-vm-01:1 (felipe)’ desktop is ubuntu-vm-01:1
- Al final, el sistema entrega la dirección del escritorio en la forma (host):(n° de escritorio), en mi caso es ubuntu-vm-01:1
- Para acceder al escritorio, es posible utilizar cualquier cliente de vnc con los siguientes datos. Personalmente, uso Real VNC para Windows en su versión gratuita
- Host: ubuntu-vm-01:1 (Alternativamente pueden usar la IP del servidor: 192.168.1.104:1 )
- Password: Previamente seleccionada con el comando vncpasswd


Otros comandos útiles
¿Cómo saber cuantos/cuales escritorios están corriendo?
ejemplo: $ ps -ef | grep vnc
¿Cómo cerrar un escritorio VNC?
ejemplo: $ vncserver -kill ubuntu-server:1
Eso debiera bastar, por lo menos para solucionar este problema. ¿Alguna duda? ¿Error? Deja un comentario.
Twitter
Facebook
LinkedIn
Last.fm
Flickr
Delicious
November 12th, 2009 at 22:06
Buena onda el VNC, pero si lo que en realidad quieres es practicidad, te va mejor usando el comando screen. Que lo que hace es de cierta manera emular un terminal, pero no lo asocia a ninguna pantalla o conexión remota.
Por ejemplo, ejecuta:
screen vim
Para abrir este modo de linea de comandos con vim. Una vez que se termine vim, se cierra esta sesion virtual. También puedes abrirlo solo como screen, lo que te abre una sesion nueva con tu usuario y puedes ejecutar los programas que quieras.
Además es útil para por ejemplo dejar corriendo un proceso en tu computador y terminar la conexión ssh. Para esto, sales del modo screen apretando primero ctrl+a y luego ctrl+d.
Para regresar a lo que estabas haciendo, desde cualquier máquina con conexión ssh o localmente, tienes que escribir:
screen -r
Lo que te mostrará las diferentes sesiones abiertas con el numero de proceso. Luego tipeas
screen -r 1234 (numero de proceso)
Si hay una sola sesión corriendo, no te muestra los numeros de proceso sino que te abre esa automáticamente.
Mira mi blog, explico como dejar bajando torrents en tu máquina remota a través de ssh y luego cerrando la conexión a la máquina.
http://www.ahorabeta.com/roller/page/beta?entry=como_bajar_torrents_en_ubuntu
November 13th, 2009 at 19:06
Screen también es una buena alternativa, en realidad, se me había olvidado que existía, voy a revisarlo.
A propósito de torrents (viendo lo que escribiste), a mi me ha funcionado bien rtorrent y rtgui (UI para rtorrent)
Saludos!
November 13th, 2009 at 20:14
Dale, voy a probar el rtorrent, porque el otro programa no es demasiado bueno, aunque hace su trabajo…
Saludos!