Cómo usar los comandos Linux y separar el proceso en la terminal

Publicidad

A pesar de que Linux es un sistema operativo como cualquier otro, pero uno muy bueno, este tiende a asustar a las personas por sus comandos. Las personas no suelen recordar los comandos, ni donde utilizarlos. Pero todo esto es muy sencillo en realidad, y puede que esta guía sea la salvadora de muchos usuarios.

usar-comandos-linux

Esta guía hablará de algo que es muy simple pero importante que es el proceso para navegar correctamente en el sistema Linux. Puede ser un poco complicado ya que, cuando un proceso es asociado a una terminal pueden pasar dos problemas:

  • La terminal que está siendo utilizada puede que esté llena de información innecesaria y envíe mensajes de error por ello
  • Si se cierra la terminal por alguna razón, ambos procesos serán finalizados por el sistema

Lo bueno es que esto si tiene una solución que es bastante sencilla, tan solo hay que aprender a como separar un proceso de una terminal que lo esté controlando. Pero antes de explicar cómo se hace esto, hay que primero saber bien como se corre un proceso.

Ahora, si el proceso ya está en ejecución, como lo puede ser el comando de ejemplo tar, solo hay que presionar Ctrl+Z para detenerlo. Luego, con el comando bg se podrá continuar la ejecución del mismo en segundo plano como si fuese un job. Para ver todos los Jobs que estén activos solo hay que escribir Jobs. Sin embargo, su stdin, stdout y stderr estarán unidos a la terminal todavía.

Tar –czf home.tar.gz.

Bg

Publicidad

Por supuesto, tambien es posible correr un proceso de manera directa en segundo plano, solo hay que utilizar &.

Tar –czf home.tar.gz . &

Jobs

Ahora se dará un ejemplo para comprender mejor lo que se ha dicho, aunque el comando tar se comenzó como un job de segundo plano, entonces un mensaje de error se envió a la terminal. Esto significaría que el proceso aún está conectado a la terminal.

Tar –czf home.tar.gz . &

jobs

Ahora, para que un proceso se mantenga activo después de que la terminal esté cerrada, hay que utilizar el comando disown. Este comando es comúnmente utilizado después de que un proceso se haya puesto en marcha en segundo plano y sirve para remover fácilmente un proceso job de la lista de Jobs activos.

Así, no hará falta utilizar los comandos fg o bg en ese job en particular. Adicionalmente, el job no mandará  o dejará ningún tipo de mensaje SIGHUP a cualquier otro job cuando se cierre la terminal que los controla.

Ahora, con el siguiente ejemplo todo debería quedar mucho más claro, después de todo con solo teoría no se aprende fácilmente. 😉

sudo rsync Templates/* /var/www/html/files/ &

jobs

disown  -h  %1

jobs

También puede ser utilizado el comando nohup el cual también pondrá en marcha el proceso para continuar corriéndolo en segundo plano.

nohup tar -czf iso.tar.gz Templates/* &

jobs

Finalmente, solo queda explicar cómo se separan los procesos de Linux de un terminal controlador. Es un proceso extremadamente sencillo donde solo tendremos que utilizar el siguiente formato:

firefox </dev/null &>/dev/null &

Siendo un usuario de Ubuntu Linux, se pueden ver muchos terminales controladores conectados a otros procesos, pero esto es algo muy común. Por este motivo también se verán muchos mensajes molestos de error en la terminal del equipo.

Pero como ya se remarcó antes, cuando estas terminales se cierran o separan, el proceso que se intentó utilizar antes podrá ser terminado satisfactoriamente. Aunque sea un problema por el cual los usuarios de MAC no se preocupan, es muy sencillo de reparar, así que no hay ninguna excusa por la cual dejar a Linux a un lado. 😉

Tags: