2012-09-05 37 views
5

Có cách nào để liệt kê các đường ống được sử dụng bởi quá trình chạy Linux (ví dụ: tên pid hoặc tên quy trình) và để xác định dung lượng đã sử dụng của chúng?Làm cách nào để liệt kê các đường ống được sử dụng bởi quy trình có lệnh bash

Cái gì như:

lspipes -l -p pid 

dẫn đến một cái gì đó như:

[rw] descriptor size name 

nơi rw là loại cuối đường ống và kích thước là khả năng sử dụng của nó

Hoặc một cái gì đó tương tự

Trả lời

10

1) ls -l /proc/pid/fd

này sẽ liệt kê các đường ống

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 

Đây là những thông tin đường ống liên quan đến quá trình id nhất định.

2

Tôi không thực sự nghĩ rằng có một lệnh như vậy. Bạn có thể thử như sau:

lsof -p PID | grep FIFO

đâu PID đứng cho quá trình id, trong khi FIFO là viết tắt của ... không có gì. Bạn phải viết chính xác "FIFO". Có lẽ có một công tắc lsof để chỉ chọn đường ống và tránh grep, nhưng tôi không thể tìm thấy nó trong trang người đàn ông ngay bây giờ.

Nó sẽ cung cấp cho bạn một cái gì đó gần với những gì bạn đang tìm kiếm.

+0

FIFO [viết tắt của "First In, First Out"] (http://www.linuxjournal.com/article/2156) – TML

+0

@TML, tôi biết ... Nhưng anh ấy không cần phải thay đổi nó trong lệnh như anh ta phải làm với PID!: D đó là ý tôi! – Zagorax