2012-09-05 29 views
5

¿Hay alguna manera de enumerar las tuberías utilizadas por un proceso en ejecución de Linux (por ejemplo, dado su nombre de proceso o pid) y determinar su capacidad utilizada?Cómo enumerar las tuberías utilizadas por un proceso con un comando bash

Algo así como:

lspipes -l -p pid 

que resulta en algo como:

[rw] descriptor size name 

donde RW es del tipo extremo de la tubería y el tamaño es su capacidad

O algo similar utilizado

Respuesta

10

1) ls -l /proc/pid/fd

Esto mostrará una lista de los tubos

lr-x------ 1 prabagaran prabagaran 64 Sep 5 23:01 14 -> pipe:[57729] 
l-wx------ 1 prabagaran prabagaran 64 Sep 5 23:01 15 -> pipe:[57728] 
lr-x------ 1 prabagaran prabagaran 64 Sep 5 23:01 16 -> pipe:[57731] 
lr-x------ 1 prabagaran prabagaran 64 Sep 5 23:01 17 -> pipe:[57730] 

2) lsof | grep 57731

wineserve 3641 prabagaran 76w  FIFO  0,8  0t0 57731 pipe 
winedevic 3651 prabagaran 16r  FIFO  0,8  0t0 57731 pipe 

Estos son la información tubería relacionada con el ID de proceso dado.

2

Realmente no creo que haya tal comando. Puede intentar lo siguiente:

lsof -p PID | grep FIFO

donde PID soporte para el identificador de proceso, mientras que FIFO significa ... nada. Tienes que escribir exactamente "FIFO". Probablemente haya un interruptor lsof para seleccionar solo tuberías y evitar el grep, pero no puedo encontrarlo en la página del manual en este momento.

Te debería dar algo parecido a lo que estás buscando.

+0

FIFO [significa "Primero en entrar, primero en salir"] (http://www.linuxjournal.com/article/2156) – TML

+0

@TML, lo sé ... Pero no necesitó cambiarlo en el comando como se supone que debe hacer con PID!: D eso es lo que quise decir! – Zagorax

Cuestiones relacionadas