Ejecutar tareas de fondo en linux

Debido a la configuración que tengo en casa, utilizo bastante conexiones ssh a mi servidor para diferentes tareas. Uno de mis discos duros ha pasado a mejor vida, y he tenido que reorganizar ciertos archivos, en total 1Tb más o menos, lo cual es bastante tedioso.

Para ello, lo más rapido, como he dicho, es una conexión a traves de ssh al servidor, y hacer desde allí los movimientos necesarios, ya que mis NAS tienen conexión por cable al mismo switch que el servidor, en vez de la conexión wireless que usa mi equipo habitual.

El caso es que mover un cierto volumen de archivos lleva bastante tiempo, y claro, no siempre puedo mantener la conexion ssh abierta indefinidamente.

 

Utilizando &

Lo primero que intenté fue utilizar el terminador & para ejecutar mi cp de fondo.

cp /nas1/archivos /nas2 &

La tarea se lanza en el background, sin ningun problema, y puedo seguir trabajando con el terminal. El problema viene si intentamos cerrar la conexión ssh, todas las tareas activas se terminan, incluso si están corriendo de fondo. Así que esta solución no me servía al 100%.

Utilizando nohup

Mi segundo intento fue con nohup. Si lanzamos el comando con nohup, lo que hacemos es que la tarea permanezca activa incluso despues de cerrar el terminal, ya que no recibe la señal HUP que se envía a todas las tareas al cerrar este.

nohup cp /nas1/archivos /nas2

Cualquier mensaje generado por el comando es redireccionado al fichero nohup.out. A pesar de que esto parecía funcionar bien, por alguna razon no podía lanzar dos comandos simultaneos con nohup. El primero siempre se detenía al comenzar el segundo. No se si hay alguna forma de evitar esto, ya que antes de investigar a fondo, encontré la tercera y definitiva opción.

Screen

Hay un programa llamado screen, que en el caso de ubuntu podeis instalar con

sudo aptitude install screen

Para lanzar nuestro comando lo hacemos de la siguiente manera

screen cp /nas1/archivos /nas2

Una vez lanzado el comando, “salimos” de screen pulsando Ctrl+A y luego D.

Nuestro proceso seguira activo en una instancia de screen, y nosotros somos libres de utilizar el terminal como queramos, incluso de cerrarlo sin ningun problema.

Podemos cerrar la conexión ssh, y el proceso seguirá activo. Podemos reconectar por ssh, y utilizando screen -r, volver a la instancia de screen que queramos para comprobar como sigue nuestro proceso.

Por supuesto, podemos lanzar varias instancias de screen con diferentes comandos al mismo tiempo, y volver a cada una de ellas si queremos.

En fin, una estupenda utilidad que me ha ahorrado mucho tiempo de espera.

Problema con fuentes en Wine

Desde hace una temporada, creo que desde que actualicé a Intrepid, tengo problemas con las fuentes en Wine. Es difícil de describir, así que lo mejor es una imagen.

http://koti.kapsi.fi/anpurola/winecfg.png

Para solucionarlo, al menos en mi caso, he tenido que hacer lo siguiente.

Crear un nuevo fichero

nano fichero.txt

con el texto siguiente

[HKEY_CURRENT_USER\Software\Wine\X11 Driver]
"ClientSideWithRender"="N"

F2, S, Enter para salir y guardar.
Después ejecutamos

regedit fichero.txt

para importar la clave en el registro de Wine, y listo.

En mi equipo ha funcionado a la perfección, y ya puedo ver correctamente mi ventana de μTorrent, que es básicamente para lo único que utilizo wine.