تخطَّ إلى المحتوى

mprocs - Cheatsheet تشغيل أوامر متعددة على التوازي

mprocs - Cheatsheet تشغيل أوامر متعددة على التوازي

يشغل mprocs عدة أوامر طويلة الأجل في نفس الوقت كل منها في حقله الخاص به مع الإخراج والملخص المستقل، والتحكم من واجهة مستخدم موحدة واحدة. وهو مصمم للموقف الشائع في التطوير حيث ستفتح بخلاف ذلك طرافة متعددة أو انقسامات tmux لتشغيل خادم واجهة أمامية وخلفية ومراقب وقاعدة بيانات. تحدد العمليات مرة واحدة في ملف إعداد وتبدأها جميعًا معًا.

التثبيت

المنصةالأمر
Cargo (جميع المنصات)cargo install mprocs
macOS (Homebrew)brew install mprocs
npmnpm install -g mprocs
Arch Linux (AUR)yay -S mprocs
Scoop (Windows)scoop install mprocs
الملف الثنائي المُنشأ مسبقًاالتحميل من صفحة GitHub Releases

الاستخدام الأساسي

الأمرالوصف
mprocsابدأ باستخدام mprocs.yaml في الدليل الحالي
mprocs "npm run dev" "npm run api"تشغيل الأوامر المخصصة كحقول
mprocs -c path/to/mprocs.yamlاستخدم ملف إعداد معين
mprocs --names web,api "npm run dev" "cargo run"اسم الحقول المخصصة
mprocs --helpقائمة الخيارات الكاملة

الإعداد (mprocs.yaml)

procs:
  web:
    shell: "npm run dev"
  api:
    shell: "cargo run"
  db:
    shell: "docker compose up postgres"
    autostart: false        # ابدأ به يدويًا باستخدام الواجهة
  worker:
    cmd: ["python", "worker.py"]
    cwd: "./backend"
    env:
      LOG_LEVEL: debug
الحقلالغرض
shellأمر يتم تشغيله عبر shell
cmdأمر كقائمة argv (بدون تحليل shell)
cwdدليل العمل للعملية
envمتغيرات البيئة لكل عملية
autostartما إذا كانت العملية تبدأ عند الإطلاق
stopكيفية إيقافها (SIGTERM أو SIGKILL أو hard-kill)

عناصر التحكم بلوحة المفاتيح

المفتاحالإجراء
Ctrl+a ثم j/kتحريك التحديد لأسفل/أعلى قائمة العملية
Ctrl+a ثم sابدأ العملية المحددة
Ctrl+a ثم xأيقف العملية المحددة
Ctrl+a ثم rأعد تشغيل العملية المحددة
Ctrl+a ثم aتبديل التركيز بين القائمة والحقل (التفاعل مع العملية)
Ctrl+a ثم cنسخ الوضع / تمرير إخراج الحقل
Ctrl+a ثم qالخروج من mprocs (إيقاف جميع العمليات)
الماوسانقر فوق عملية لاختيارها؛ مرر إخراجها

البادئة الافتراضية هي Ctrl+a؛ وهي قابلة للتكوين. اضغط على البادئة وحررها ثم مفتاح الإجراء.

التحكم عن بعد

يمكن التحكم في mprocs بشكل برمجي وهو مفيد من البرامج النصية أو مهام المحرر.

# أرسل أمرًا إلى مثيل mprocs قيد التشغيل عبر مقبسه
mprocs --ctl '{c: restart-proc, proc: web}'

سير العمل الشائع

# أمر واحد لجلب مكدس محلي كامل محدد في mprocs.yaml
mprocs

# سريع مؤقت: مراقبة الاختبارات وخادم تطوير جنبًا إلى جنب
mprocs --names test,dev "npm test -- --watch" "npm run dev"

# الاحتفاظ بحقل قاعدة البيانات حاضرًا ولكن ابدأ به فقط عند الحاجة (autostart: false)

mprocs مقابل البدائل

الأداةالنموذجالأفضل لـ
mprocsTUI وحقل واحد لكل عمليةمجموعات عمليات التطوير والتكوين البسيط
tmuxمضاعف طرفية كاملالجلسات والانقسامات والاستقرار البعيد
foreman/overmindعداءو Procfileإدارة العمليات المستندة إلى Procfile
GNU parallelتوازن دفعيتشغيل العديد من المهام القصيرة وليس الخوادم طويلة الأجل

الموارد