killsnoop.bt(8) System Manager's Manual killsnoop.bt(8)

killsnoop.bt - ردیابی سیگنال‌های صادرشده توسط فراخوانی‌های سیستمی kill()، tkill() و tgkill(). استفاده از bpftrace/eBPF.

killsnoop.bt

ابزار killsnoop فراخوانی‌های سیستمی kill()، tkill() و tgkill() را برای نمایش سیگنال‌های ارسال‌شده از طریق این روش‌ها ردیابی می‌کند. این ابزار می‌تواند برای عیب‌یابی برنامه‌هایی که دچار خطا می‌شوند، در جایی که سازوکاری ناشناخته در حال ارسال سیگنال است، مفید باشد.

این ابزار با ردیابی نقاط ردیابی (tracepoints) فراخوانی‌های سیستمی kill()، tkill() و tgkill() کار می‌کند.

از آنجا که این ابزار از BPF استفاده می‌کند، تنها کاربر ریشه (root) می‌تواند از آن استفاده کند.

CONFIG_BPF و bpftrace.

ردیابی تمام فراخوانی‌های سیستمی kill()، tkill() و tgkill():
# killsnoop.bt

زمان فراخوانی kill.
شناسه فرآیند مبدأ (Source process ID)
نام فرآیند مبدأ
شماره یا نام سیگنال. به signal(7) مراجعه کنید.
شناسه فرآیند هدف (Target process ID)
نتیجه. 0 == موفقیت، مقدار منفی (کد خطا) نشان‌دهنده شکست.

این ابزار تابع kill هسته را ردیابی کرده و برای هر رویداد خروجی چاپ می‌کند. از آنجا که نرخ این رویدادها معمولاً کم انتظار می‌رود (کمتر از ۱۰۰ در ثانیه)، بار پردازشی نیز ناچیز برآورد می‌شود. اگر برنامه‌ای دارید که بنا به دلایلی با نرخ بسیار بالایی kill()|tkill()|tgkill() را فراخوانی می‌کند، پیش از استفاده بار پردازشی را آزمایش کرده و بسنجید.

این ابزار برگرفته از bpftrace است.

https://github.com/bpftrace/bpftrace

همچنین در توزیع bpftrace پرونده همراه _examples.txt را که شامل نمونه‌های کاربرد، خروجی و توضیحات این ابزار است بررسی کنید.

این یک نسخه bpftrace از ابزار bcc با همین نام است. ابزار bcc ممکن است گزینه‌ها و سفارشی‌سازی‌های بیشتری ارائه دهد.

https://github.com/iovisor/bcc

Linux

ناپایدار - در حال توسعه.

Brendan Gregg, Rong Tao

opensnoop.bt(8)

2018-09-07 USER COMMANDS