Está en la página 1de 6

09/09/13

Procesos - doc.ubuntu-es

Procesos
De doc.ubuntu-es (Redirigido desde Los procesos) Los procesos que se encuentren en ejecucin en un determinado momento sern, en general, de diferente naturaleza. Podemos encontrar: Procesos de sistema, o bien procesos asociados al funcionamiento local de la mquina y del kernel, o bien procesos (denominados daemons) asociados al control de diferentes servicios, ya sean locales, o de red, porque estamos ofreciendo el servicio (actuamos de servidor) o estamos recibiendo el servicio (actuamos de clientes). La mayora de estos procesos aparecern asociados al usuario root, aunque no estemos presentes en ese momento como usuarios. Puede haber algunos servicios asociados a otros usuarios de sistema (lp, bin, www, mail, etc.), estos son usuarios virtuales que utiliza el sistema para ejecutar ciertos procesos. Procesos del usuario administrador: en caso de actuar como root, nuestros procesos interactivos o aplicaciones lanzadas tambin aparecern como procesos asociados al usuario root. Procesos de usuarios del sistema: asociados a la ejecucin de sus aplicaciones, ya sea tareas interactivas en modo texto o en modo grfico. Como comandos rpidos y ms tiles podemos utilizar: ps : el comando estndar, lista los procesos con sus datos de usuario, tiempo, identificador de proceso y lnea de comandos usada. Una de las opciones utilizada es ps ef, pero hay muchas opciones disponibles (ver man). top, htop: una versin que nos da una lista actualizada a intervalos. kill: permite enviar seales a procesos como, por ejemplo, la de terminacin kill -9 PID,donde indicamos el identificador del proceso. til para procesos con comportamiento inestable o programas interactivos que han dejado de responder.

Contenido
1 Redireccionamientos 1.1 Redireccionando un proceso a un archivo 1.2 Error de proceso 1.3 Procesos en primer y segundo plano 1.4 Usando jobs 1.5 Capturando ambas salidas en un solo archivo 1.6 Redirecciones, usando pipes (tuberas, fontaneras) 1.6.1 Pipes con el comando grep 1.7 Utilizando bg 1.8 Utilizando fg 1.9 Ctrl+Z 2 Fuentes

doc.ubuntu-es.org/Los_procesos

1/6

09/09/13

Procesos - doc.ubuntu-es

Redireccionamientos
Cualquier proceso tiene una entrada estndar (stdin) y una salida hacia dos archivos conocidos como stdout y stderr. Veamos un ejemplo: Ejecutamos un comando por medio del teclado. En este caso la entrada estndar es el teclado. Una vez que el proceso comienza tendremos una salida con dos archivos, stdout y stderr, aunque uno de los dos estar vaco y por lo tanto solo veremos el otro. Normalmente la salida stdout es la pantalla, pero si hubo un error en la ejecucin del proceso la salida por pantalla corresponder a stderror con un mensaje de error. Normalmente ambas salidas estn unificadas hacia la pantalla. Para comprender mejor qu es lo que sucede vamos a redireccionar la salida a otro archivo. Para esto utilizamos como redireccionador el smbolo `>`. Con esto conseguimos redireccionar a otro archivo el contenido de la salida. Este tipo de redireccionamiento borra lo que hubiese anteriormente en el archivo. Si queremos copiar el nuevo contenido debajo de la informacin ya existente sin borrar nada, podemos usar `>>` en lugar de `>`

Redireccionando un proceso a un archivo


Vamos a listar todo lo que haya en directorio raz de la siguiente manera:
l s/

En este caso la salida nos mostrar algo as como:


b i nd e vi n i t r dl i bm n tr o o ts y sv a r b o o te t ci n i t r d . i m gl o s t + f o u n do p ts b i nt m pv m l i n u z c d r o mh o m ei n i t r d . i m g . o l dm e d i ap r o cs r vu s rv m l i n u z . o l d

Para redireccionar esta salida (o sea que en lugar de salir por pantalla lo haremos hacia un archivo) debemos ejecutar el siguiente comando:
l s/>l i s t a r . t x t

Si ahora quisiramos ver el resultado por pantalla no veramos nada ya que fue redireccionado al archivo `listar.txt` Para ver el contenido de este archivo podemos hacer lo siguiente:
c a tl i s t a r . t x t

Y veremos lo siguiente
b o o tc d r o md e ve t ch o m ei n i t r di n i t r d . i m gi n i t r d . i m g . o l dl i bl o s t + f o u n d m e d i am n to p tp r o cr o o ts b i ns r vs y st m pu s rv a rv m l i n u zv m l i n u z . o l d

Si comparamos el resultado veremos que es el mismo que obtuvimos cuando hicimos `ls`antes de redireccionar.

Error de proceso
doc.ubuntu-es.org/Los_procesos 2/6

09/09/13

Procesos - doc.ubuntu-es

Qu pasara si pedimos al sistema que nos muestre un proceso que tiene un error? Hagamos una prueba
l s/ x x x

Como el directorio/archivo xxx no existe, se va a generar un error.


l s :x x x :N oe x i s t ee lf i c h e r ood i r e c t o r i o

Podemos hacer lo siguiente:


l s/ x x x> p e p e . t x t2 > > x e r r o r . l o g r o o t @ l o s i n d i o s : ~ #c a tx e r r o r . l o g l s :/ x x x :N oe x i s t ee lf i c h e r ood i r e c t o r i o

Esto significa que hemos redireccionado la salida del error de 'ls / xxx' a un archivo llamado pepe.txt y mediante el nmero 2 estamos redirigiendo a un archivo xerror.log la salida de error estndar. Mientras que el nmero 0 indica entrada estndar, el nmero 1 indica salida estndar y el nmero 3 indica error estndar

Procesos en primer y segundo plano


Un proceso que corre en primer plano (`fg` de foreground) normalmente es aqul que ingresamos por teclado y podemos ver por pantalla. Los procesos tipo demonio no corren en primer plano, sino en segundo, no son llamados desde una terminal (tty) sino desde un puerto, y no aparecen en pantalla. Si queremos pasar un proceso que est corriendo en primer plano a segundo plano, podemos utilizar el smbolo `&`Veamos un ejemplo:
t o p &

Y el sistema nos devuelve algo como


[ 1 ]1 1 0 6 8

Vemos que no apareci por pantalla el resultado de `top`con los procesos que hay corriendo en el sistema sino un nmero de trabajo asignado y el PID (Process ID) correspondiente. No es que `top` no est corriendo sino que lo est haciendo en background.

Usando jobs
Si utilizamos `jobs`podremos ver los procesos que estn corriendo en 2do.plano. Veamos cmo:
j o b s

Y el sistema nos devolver


j o b s [ 1 ] +S t o p p e dt o p

doc.ubuntu-es.org/Los_procesos

3/6

09/09/13

Procesos - doc.ubuntu-es

Capturando ambas salidas en un solo archivo


Podemos capturar stdout y stderr en un solo archivo mediante el siguiente comando:
l s/ x x x>l i s t a r . t x t2 > & 1 r o o t @ l o s i n d i o s : ~ #c a tl i s t a r . t x t

Y el 'cat' nos devuelve:


l s :/ x x x :N oe x i s t ee lf i c h e r ood i r e c t o r i o

De esta manera podremos ver ambas salidas pero solo de la ltima vez que ejecutamos este comando. Si quisiramos contar con un log completo de procesos podramos utilizar un comando llamado `cron` para automatizar el comando anterior y que se repita cada cierta cantidad de veces en distintos horarios. Para que la captura no borre los resultados anteriores debemos escribir el comando en la siguiente forma
l s/ x x x> >l i s t a r . t x t2 > & 1

De esta forma el archivo conservar las entradas anteriores sin borrar nada.

Redirecciones, usando pipes (tuberas, fontaneras)


Lo que hace 'pipes' es tomar una salida de un proceso y convertirla en la entrada estndar de otro proceso. El smbolo para hacerlo es '|' que normalmente se obtiene mediante la combinacin de teclas AltGr + 1 (puede ser diferente en otros teclados.) A veces cuando queremos ver un archivo demasiado grande por pantalla, estamos frente a un problema. Si el archivo tiene ms contenido que lo visible en la pantalla, ste pasar muy rpido y solo veremos la parte final. Veamos un ejemplo:
l sR/

La 'R' significa recursividad, es decir que nos va a mostrar todos los directorios/subdirectorios y archivos que se encuentren dentro de '/' Veremos algo que corre por la pantalla a gran velocidad y solo ser visible al ltima parte del proceso 'ls' por tratarse de demasiado contenido para una sola pantalla. Tal cual vimos en su momento, el comando 'less' imprime en pantalla solo una parte del contenido total, equivalente a lo que puede verse en una pantalla completa y no ms. Mediante las teclas de direccin 'arriba' y 'abajo' es posible desplazarse por la pantalla para ver todo el contenido de un archivo. Entonces podemos escribir lo siguiente:
l sR/|l e s s

De esta forma redireccionamos la salida del proceso 'ls' a la entrada de otro proceso llamado 'less' lo que nos permitir ver el archivo estndar de salida 'ls' por partes. Veamos otro ejemplo donde podemos utilizar 'pipes' Pipes con el comando grep

doc.ubuntu-es.org/Los_procesos

4/6

09/09/13

Procesos - doc.ubuntu-es

Como recordamos 'grep' nos permite filtrar un archivo, su contenido, un grupo de archivos, etc que tengan coincidencia con una cadena de caracteres. Por ejemplo vamos a buscar los archivos que tengan extensin 'txt' y que se encuentren dentro del directorio 'home'
l sR/ h o m e|g r e p. t x t

Y el sistema nos devuelve:


l i s t a r . t x t l s . t x t

Lo que hemos hecho es buscar mediante ls -R /home en forma recursiva todos los directorios, subdirectorios y archivos dentro de /home, luego enviamos la salida de este proceso a la entrada de uno nuevo llamado 'grep'. Este ltimo actuar como filtro utilizando la cadena de caracteres '.txt'

Utilizando bg
Mientras que '&' lleva a segundo plano un proceso existente en primer plano, 'bg' lo reinicia en segundo plano. 'bg' no utiliza el nombre del proceso ni el PID sino el nmero de trabajo.
b g% 1

Utilizando fg
Mientras que 'bg' es background o segundo plano, 'fg' es foreground o primer plano. Lo que hace este comando es traer a primer plano un proceso que normalmente corre en segundo plano, utilizando tambin el nmero de trabajo. Ejemplo:
f g% 1

Ctrl+Z
Para pasar a segundo plano un proceso que corre en primer plano, podemos tambin utilizar Ctrl + Z

Fuentes
Fundaci per a la Universitat Oberta de Catalunya Av. Tibidabo, 39-43, 08035 Barcelona Material realizado por Eureca Media, SL Autores: Josep Jorba Esteve y Remo Suppi Boldrito Depsito legal: B-7.597-2004 ISBN: 84-9788-116-8 Se garantiza permiso para copiar, distribuir y modificar este documento segn los trminos de la GNU Free Documentation License, Version 1.2 o cualquiera posterior publicada por la Free Software Foundation , sin secciones invariantes ni textos de cubierta
doc.ubuntu-es.org/Los_procesos 5/6

09/09/13

Procesos - doc.ubuntu-es

delantera o trasera. Se dispone de una copia de la licencia en el apartado GNU Free Documentation License de este curso. Puede encontrarse una versin de la ltima versin de este documento en http://cursosobre.berlios.de/introsobre. http://superalumnos.net/curso-gratuito-gnu-linux-intermedio Obtenido de http://doc.ubuntu-es.org/index.php?title=Procesos&oldid=15565 Categora: Sistema Linux

doc.ubuntu-es.org/Los_procesos

6/6