ازاي تستخدم الـ Systemd عشان تشغل البرامج دايماً ؟
الـ 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 .
أتمنى أن تكون قد استفدت من الموضوع ، إن كنت تعرف أي شخص يُمكنه الإستفادة من هذه المعلومات، ارسل له رابط هذا المقال. إن أردت معرفة الموضوعات الجديدة بعد نشرها مباشرةً على موقع أبانوب حنا ، تابعني على يوتيوب و تيليجرام ، و فيسبوك ، و واتساب .