
أداة سطر أوامر لإخراج مشابه لـ pstree على macOS مع إمكانيات إضافية لالتقاط pid.

حول
اقرأ كل شيء عن مفهوم TrueTree هنا
TrueTree هو أكثر من مجرد أمر pstree لنظام macOS. يُستخدم لعرض شجرة العمليات للعمليات قيد التشغيل الحالية مع استخدام تسلسل هرمي مبني على معرّفات pids إضافية يمكن جمعها من نظام التشغيل. شجرة العمليات القياسية على macOS التي يمكن بناؤها باستخدام pids وppids التقليدية ليست مفيدة كثيرًا على macOS بسبب كل اتصالات XPC الجارية. تنتهي الغالبية العظمى من العمليات بامتلاك عملية أب هي launchd. ومع ذلك، يعرض TrueTree شجرة عمليات يُقصد بها أن تكون مفيدة للمستجيبين للحوادث وصائدي التهديدات والباحثين وكل من بينهم!
تحديث رئيسي: بسبب الميزات المتغيرة باستمرار على macOS، منذ macOS 11 لم تعد بعض الميزات تعمل تمامًا كما كانت عندما كتبت منشور المدونة الأصلي لـ TrueTree. قدّمت Apple إضافة عملية جديدة "runningboardd" التي تنتهي بأن تكون الأب الحقيقي للعديد من العمليات. للالتفاف على ذلك، تم تحديث TrueTree لاستخدام إطار عمل Application Services الذي سمح بالحصول على الأب الحقيقي في بعض السيناريوهات. ومع ذلك، لم يعد هذا يسمح بالحصول على عملية أب حقيقية إذا كانت تلك العملية الأب قد انتهت. مما يجعل من الصعب تحديد بعض الآباء الحقيقيين مثل أمر "open". ثمن بسيط يجب دفعه لضمان استمرار عمل TrueTree عبر إصدارات macOS. يمكن غالبًا العثور على بعض العلامات الأخرى للأب الحقيقي داخل مخرجات launchctl procinfo. قد يؤخذ هذا في الاعتبار في المستقبل
جديد في TrueTree 0.9: لم يعد root مطلوبًا لتشغيل TrueTree. بدون root، يتم تقدير pids المسؤولة من تحالفات العمليات (process coalitions)، وتقتصر اتصالات الشبكة على عملياتك الخاصة. التحالف هو مجموعة من العمليات المترابطة التي يتتبعها نواة macOS معًا، مثل تطبيق والمساعدين وخدمات XPC التي يطلقها.
عند التشغيل كـ root، يستخدم TrueTree طريقة libquarantine الأصلية، وهي الأكثر موثوقية. لاستخدام طريقة التحالف كـ root بدلاً من ذلك، مرّر --acquire-responsible-via-coalition .
تمت أيضًا إضافة اختبارات جديدة، بما في ذلك اختبارات التحالف التي تحمي من تغيير macOS بهدوء لواجهة نواة خاصة يعتمد عليها TrueTree.
./TrueTree -h
--nocolor -> عدم تلوين العناصر في المخرجات
--timeline -> ترتيب وطباعة جميع العمليات حسب طابعها الزمني للإنشاء
--timestamps -> تضمين الطوابع الزمنية للعمليات
--standard -> طباعة شجرة Unix القياسية بدلاً من TrueTree
--sources -> طباعة مصدر منشأ أب كل عملية
--nonetwork -> عدم طباعة اتصال الشبكة
--nopid -> عدم طباعة pid بجانب كل عملية
--nopath -> طباعة اسم العملية فقط بدلاً من المسارات الكاملة
--json -> إخراج JSON بدلاً من النص (يعمل مع --standard و--timeline و-o)
--version -> طباعة رقم إصدار TrueTree
--acquire-responsible-via-coalition
تقدير pids المسؤولة من تحالفات العمليات بدلاً من libquarantine.
تُستخدم التحالفات دائمًا عند عدم التشغيل كـ root.
-o -> الإخراج إلى ملف
./TrueTree
يعرض شجرة عمليات محسّنة باستخدام مفهوم TrueTree

./TrueTree --standard
لمخرجات الشجرة بناءً على pids وppids القياسية استخدم --standard

./TrueTree --timestamps
للمخرجات بأي من التنسيقين مع إضافة وقت إنشاء العملية استخدم خيار --timestamps

./TrueTree --sources
لإظهار من أين تم الحصول على كل pid أب استخدم خيار --sources

./TrueTree --timeline
لا يجمع شجرة. بدلاً من ذلك يطبع العمليات مرتبة حسب وقت الإنشاء
