Câu trả lời:
Không có lệnh nào tôi biết nhưng có một lệnh gọi hàm libc có thể lấy số liệu thống kê:
người đàn ông 3 mq_getattr
mq_getattr() returns an mq_attr structure in the buffer pointed by
attr. This structure is defined as:
struct mq_attr {
long mq_flags; /* Flags: 0 or O_NONBLOCK */
long mq_maxmsg; /* Max. # of messages on queue */
long mq_msgsize; /* Max. message size (bytes) */
long mq_curmsgs; /* # of messages currently in queue */
};
Nếu bạn đủ may mắn để sử dụng HP-UX , lệnh pipcs
(PDF) sẽ thực hiện POSIX tương đương với lệnh SysV IPC ipcs
. Đáng buồn thay, nó chưa bao giờ xuất hiện cho các hệ điều hành khác. Gói linux-linux hiện tại (tháng 3 năm 2013) cung cấp ipcs
hầu như không đề cập đến các vấn đề POSIX.
Nếu bạn đã mqueue
gắn kết /dev/mqueue
, những gì được hỗ trợ chỉ đơn giản là đọc hàng đợi dưới dạng tệp:
user@linux $ cat /dev/mqueue/myQ
QSIZE:0 NOTIFY:0 SIGNO:0 NOTIFY_PID:0
Các QSIZE
tiếc là kích thước tính bằng byte, không tin nhắn; trên Linux không có trường đếm tin nhắn - không giống như FreeBSD cung cấp một CURMSG
giá trị:
user@freebsd $ cat /mnt/mqueue/myQ
QSIZE:0 MAXMSG:32 CURMSG:0 MSGSIZE:1024
Vì vậy, câu trả lời phải là "gắn FS mqueue và sử dụng cat
", nhưng không phải là :(
(Gắn FS mqueue không phải là điều kiện tiên quyết để sử dụng API MQ, nó chỉ cho phép bạn thực hiện một số nội dung "mọi thứ là một tệp".)
Nếu bạn thực sự cần theo dõi hàng đợi, cuốn sách Giao diện lập trình Linux có mã nguồn C cho các công cụ CLI khác nhau để tạo, kiểm tra và sử dụng hàng đợi tin nhắn. Hạnh phúc chương 52 của cuốn sách bao gồm chủ đề này hiện đang có sẵn miễn phí để tải về. Xem pmsg_getattr.c
.
Mã tham chiếu chính tắc từ Lập trình mạng Unix của Stephen (Tập 2) 2nd Ed. (1999) có sẵn ở đây , nó cũng cung cấp một số thứ khác mqgetattr
cũng sẽ thực hiện công việc (mặc dù bạn có thể sẽ cần phải xoa bóp một vài dòng ở cấp cao nhất config.h
, #define
đối với các uint
loại xung đột khác nhau với các tiêu đề hệ thống Unix hiện đại).
Ngoài ra còn có các mô-đun Ruby , Perl và TCL cho việc này, Ruby đi kèm với một posix-mq-rb
công cụ CLI.
$ ipcs -q
sẽ cung cấp số liệu thống kê hàng đợi tin nhắn từ dòng lệnh.
$ ipcs -m
sẽ cung cấp số liệu thống kê bộ nhớ được chia sẻ từ dòng lệnh.
$ ipcs
sẽ cung cấp tất cả các số liệu thống kê cơ chế ipc.
ipcs
không dành cho hàng đợi tin nhắn
ipcs
được sử dụng cho hàng đợi tin nhắn System V và không cho hàng đợi tin nhắn POSIX