ازاي تستخدم الـ Systemd عشان تشغل البرامج دايماً ؟

· 230 كلمة · 2 دقيقة قراءة

الـ Systemd بـ يتحكم في الخدمات دي من خلال ملفات تعريف زي كده.

[Unit]
Description=Some Really Important Service

[Service]
Type=simple
WorkingDirectory=/root
ExecStart=/root/my_program.sh

[Install]
WantedBy=multi-user.target

البرنامج اللي هيشتغل هو ده.

#!/usr/bin/env bash

while true; do
    echo 'service is working'
    sleep 3
done

لو مش عايز تستخدم السطر دا #!/usr/bin/env bash, لازم تحدد البرنامج اللي هيقوم بتنفيذ السكربت زي كده.

ExecStart=/bin/bash /root/my_program.sh

لو عايز تشغل الخدمة دي، لازم تخزنها في /etc/systemd/system/. تقدر تنسخ ملف التعريف للمجلد دا، أو تعمل لينك رمزي (symlink) ليه.

دلوقتي تقدر تستخدم start او stop او enable او disable عشان تتحكم بالخدمة.

الأمرالمعنى
systemctl start sampleشغل الخدمة او خليها تشتغل
systemctl stop sampleوقف تشغيل الخدمة
systemctl enable sampleخلي الخدمة تشتغل أتوماتيك عشان تشغيل النظام
systemctl disable sampleالخدمة مش هتشتغل وقت بدء تشغيل النظام

عشان تشوف الـ Output بتاع الخدمات، شغّل الأمر دا.

journalctl -f

لو عايز تعرف الحالة الحالية للخدمة، استخدم الأمر دا.

systemctl status sample

لو عايز تشوف كل الخدمات الموجودة على النظام، شغل الأمر دا.

systemctl list-unit-files

عايز تعرف معلومات أكتر عن الخدمات و ملفات تعريف بتاعتهم، تقدر تقرأ أكتر هنا: https://wiki.debian.org/systemd .

أتمنى أن تكون قد استفدت من الموضوع ، إن كنت تعرف أي شخص يُمكنه الإستفادة من هذه المعلومات، ارسل له رابط هذا المقال. إن أردت معرفة الموضوعات الجديدة بعد نشرها مباشرةً على موقع أبانوب حنا ، تابعني على يوتيوب و تيليجرام ، و فيسبوك ، و واتساب .

التصنيفات: برمجة
مشاركة:
الترجمات:  English (How to Use Systemd to Keep Programs Running ?)