تتبع استدعاءات النظام

عندما ترغب في معرفة ما الذي يقوم به عملية معينة، يمكنك استخدام أمر "strace" لتتبع جميع استدعاءات النظام لعملية معينة.

  1. يمكنك رؤية معلومات عمليات Workerman ذات الصلة عند تشغيل "php start.php status" كما يلي:
مرحبًا بالمسؤول
---------------------------------------حالة النظام العالمية--------------------------------------------
إصدار Workerman: 3.0.1
وقت البدء: 2014-08-12 17:42:04   يعمل 0 أيام 1 ساعة
متوسط الحمولة: 3.34، 3.59، 3.67
1 مستخدمين          8 عمال       14 عمليات
اسم العامل       حالة الخروج     عداد الخروج
BusinessWorker    0                0
ChatWeb           0                0
FileMonitor       0                0
Gateway           0                0
Monitor           0                0
StatisticProvider 0                0
StatisticWeb      0                0
StatisticWorker   0                0
---------------------------------------حالة العمليات-------------------------------------------
pid الذاكرة      الاستماع        الطابع الزمني  اسم العامل       الطلب الإجمالي packet_err thunder_herd client_close send_fail throw_exception suc/total
10352   1.5M    tcp://0.0.0.0:55151  1407836524 ChatWeb           12             0          0            2            0         0               100%
10354   1.25M   tcp://0.0.0.0:7272   1407836524 Gateway           3              0          0            0            0         0               100%
10355   1.25M   tcp://0.0.0.0:7272   1407836524 Gateway           0              0          1            0            0         0               100%
(النص المستمر ...)
  1. على سبيل المثال، إذا كنت ترغب في معرفة ما الذي يقوم به عملية البوابة التي يكون رقم معرف العملية الخاصة بها 10354، يمكنك تشغيل أمر "strace -p 10354" (قد يكون هناك حاجة إلى صلاحيات المسؤول) مثلما يلي:
sudo strace -p 10354
العملية 10354 مرتبطة - اضغط على مفتاح التوقف للإنهاء
clock_gettime(CLOCK_MONOTONIC, {118627, 242986712}) = 0
gettimeofday({1407840609, 102439}, NULL) = 0
epoll_wait(3, 985f4f0, 32, -1)          = -1 EINTR (استدعاء النظام تم الانقطاع)
( ... النص المستمر)
  1. حيث كل سطر يمثل استدعاءً لنظام، حيث يمكننا بسهولة رؤية ما الذي تقوم به العملية من هذه المعلومات، ويمكن تحديد حيث توقفت العملية، سواء في الاتصال أو قراءة البيانات عبر الشبكة.