- با استفاده از این ابزار میتوان سیگنالهایی که به سمت یک ابزار (پروسه) ارسال میشود را مانیتور کرد.
- استفاده از strace به دو صورت است.
- اجرای ابزار در قالب strace
- اتصال PID پروسه به strace
- لازم به ذکر است در برخی از ابزارها مثل redis دیده شده که با اتصال strace به PID آن ، کارایی یا Performance آن ابزار (redis) پایین میآید.
- به منظور اتصال یک PID به strace به صورت زیر عمل کنید.
# strace -p 123321
- از سویچ t- برای نمایش زمان میتوان استفاده نمود.
- نمونهای از خروجی strace برای PID مربوط به دستور sleep 100 به شرح زیر است.
# strace -t -p 3651
strace: Process 3651 attached
09:57:01 restart_syscall(<... resuming interrupted read ...>) = 0
09:58:31 close(1) = 0
09:58:31 close(2) = 0
09:58:31 exit_group(0) = ?
09:58:31 +++ exited with 0 +++
- در مثال بالا ابزار sleep به سیگنالی مناسب و خوب به کارکرد خود پایان داده است لذا خروجی (قرمز رنگ) بالا حاصل شده است.
- در صورتی که با دیگر سیگنالها نظیر شمارهی ۹ یا ۱۱ ، کارکرد ابزار sleep به پایان رسد ، خروجیای مشابه زیر حاصل خواهد شد.
# strace -t -p 3704
strace: Process 3704 attached
10:00:58 restart_syscall(<... resuming interrupted read ...>) = ?
10:01:06 +++ killed by SIGKILL +++
- به منظور مانیتور و دنبال کردن سیگنالهای ارسالی به سمت پروسه در پروسههای Child ، باید از سویچ f- استفاده نمود.
# strace -t -f -p 3705
- نکته : در صورتی که strace به PID مربوط به یک Shell (مثلا ترمینال باز شده) متصل شود ، تمام کارکترهای تایپ شده توسط کاربر مانیتور میشود.