2012-09-05 12 views
5

C'è un modo per elencare le pipe utilizzate da un processo Linux in esecuzione (ad esempio dato il suo nome pid o processo) e per determinare la loro capacità utilizzata?Come elencare le pipe utilizzate da un processo con un comando bash

Qualcosa di simile:

lspipes -l -p pid 

conseguente qualcosa come:

[rw] descriptor size name 

dove rw è il tipo estremità del tubo e la dimensione è la sua capacità utilizzata

O qualcosa di simile

risposta

10

1) ls -l /proc/pid/fd

Verranno elencati i tubi

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 

Queste sono le informazioni relative al tubo del id di processo.

2

Non penso davvero che ci sia un tale comando. Si può provare il seguente:

lsof -p PID | grep FIFO

Dove PID riposare per l'ID di processo, mentre FIFO sta per ... niente. Devi scrivere esattamente "FIFO". Probabilmente c'è uno switch lsof per selezionare solo pipe ed evitare lo grep, ma non riesco a trovarlo nella pagina man in questo momento.

Dovrebbe darti qualcosa vicino a quello che stai cercando.

+0

FIFO [sta per "First In, First Out"] (http://www.linuxjournal.com/article/2156) – TML

+0

@TML, lo so ... Ma non aveva bisogno di cambiarlo nel comando come dovrebbe fare con PID!: D questo è quello che intendevo! – Zagorax

Problemi correlati