خدمة بدء / إيقاف systemctl: كيفية إعداد Upstart Script و Respawn Process في Ubuntu و CentOS و Redhat Linux
نشرت: 2021-06-09كيف تكتب سيناريو بدء التشغيل لـ systemd؟
systemd
هو أحدث service management utility
في أحدث إصدارات توزيع Linux مثل Ubuntu OS و Redhat OS و CentOS.
لهذا السبب يدعم إصدار Ubuntu 17.4 و Redhat 7.4 الآن systemctl command
. إذا كنت تستخدم إصدارًا أقدم من نظام التشغيل Linux ، فقد تحتاج إلى إلقاء نظرة على الجزء السفلي من هذه الصفحة لرؤية init.d script
الأقدم
سنناقش أدناه الأشياء في هذا البرنامج التعليمي
- إنشاء وحدة خدمة النظام
- كيفية
configure
سيستمد؟ - كيفية
enable
systemd؟ - كيف تبدأ العملية تلقائيًا باستخدام systemd؟
- كيف تتوقف وعملية إعادة النشر باستخدام
respawn
؟
خطوات الإعداد لهذا البرنامج التعليمي:
Prerequisite:
قمنا بتجميع نسخة من برنامج CrunchifyAlwaysRunningProgram.java في مجلد /tmp/crunchify
. ستستمر عملية جافا هذه في الخلفية إلى الأبد. يمكنك تنزيل البرنامج من هنا.
بمجرد تنزيله ، try to compile
وتشغيله للتأكد من أنه يعمل.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
root @ crunchify : / tmp / crunchify # ls -ltr - rw - r -- r -- 1 root root 120 Oct 6 17 : 57 crunchify . tar . gz drwxr - xr - x 2 root root 4096 Oct 6 18 : 01 tomcat drwxr - xr - x 2 root root 4096 Oct 6 18 : 02 java - rw - r -- r -- 1 root root 621 Oct 7 16 : 06 package - rwxrwxrwx 1 root root 838 Oct 7 16 : 07 CrunchifyAlwaysRunningProgram . java - rwxrwxrwx 1 root root 1295 Oct 8 14 : 38 CrunchifyAlwaysRunningProgram . class root @ crunchify : / tmp / crunchify # javac CrunchifyAlwaysRunningProgram.java root @ crunchify : / tmp / crunchify # java CrunchifyAlwaysRunningProgram always running program == > Sun Oct 08 14 : 39 : 14 UTC 2017 always running program == > Sun Oct 08 14 : 39 : 16 UTC 2017 . . . . . . . . . |
يمكنك كتابة CTRL + C
لإنهاء البرنامج.
لنبدأ الآن في إعداد برنامج نصي لبدء التشغيل التلقائي الخاص بـ systemd للبرنامج أعلاه.
الخطوة 1
- انتقل إلى folder / lib / systemd / system
- اكتب
cd /lib/systemd/system
الخطوة 2
- إنشاء ملف
crunchify.service
(قم بتغيير اسم الملف وفقًا لذلك) - ضع المحتوى أدناه فيه
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[ Unit ] Description = Crunchify Java Process Restart Upstart Script After = auditd . service systemd - user - sessions . service time - sync . target [ Service ] User = root TimeoutStartSec = 0 Type = simple KillMode = process export JAVA_HOME =/ opt / java / jdk - 9 export PATH = $ PATH : $ JAVA_HOME / bin WorkingDirectory =/ tmp / crunchify ExecStart =/ opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram Restart = always RestartSec = 2 LimitNOFILE = 5555 [ Install ] WantedBy = multi - user . target |

الخطوه 3
- احفظ الملف
- قدم إذن التنفيذ باستخدام
chmod 755 crunchify.service
الخطوة 4
- قم بتحميل crunchify.service باستخدام الأمر
systemctl daemon-reload
- قم بتمكين crunchify.service باستخدام command
systemctl enable crunchify.service
- ابدأ crunchify.service باستخدام command
systemctl start crunchify
- تحقق من حالة crunchify.service باستخدام الأمر
systemctl status crunchify
الخطوة 5
- تحقق الآن مما إذا كانت العملية قيد التشغيل أم لا ؟؟
- اكتب الأمر
ps -few | grep java
ps -few | grep java
لرؤية جميع عمليات Java قيد التشغيل - يجب أن نرى شيئا من هذا القبيل
1 2 3 |
root @ crunchify : / lib / systemd / system # ps -few | grep java root 28631 1 0 14 : 02 ? 00 : 00 : 03 / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram root 28853 28226 0 14 : 46 pts / 0 00 : 00 : 00 grep java |
هذا يعني أن العملية 28631
بدأت في استخدام البرنامج النصي الخاص بك. قد يكون لديك معرف عملية مختلف.
كيف تتحقق مما إذا كانت خدمة crunchify.service الخاصة بك تعمل أم لا؟
- حاول قتل العملية باستخدام
kill -9 28631
أنه يجب إنشاء عملية جديدة تلقائيًا. - في حالتي ، تم إنشاء معرف العملية الجديد
28887
1 2 3 4 |
root @ crunchify : / lib / systemd / system # kill -9 28631 root @ crunchify : / lib / systemd / system # ps -few | grep java root 28887 1 17 14 : 48 ? 00 : 00 : 00 / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram root 28900 28226 0 14 : 48 pts / 0 00 : 00 : 00 grep java |
فيديو: مثال على إعداد البرنامج النصي لبدء تشغيل النظام المباشر الكامل:
يحتوي هذا الفيديو على - كيفية إعداد برنامج نصي لبدء تشغيل / بدء تشغيل النظام في CentOS و Redhat و Ubuntu Linux OS؟
- كيفية تنفيذ برنامج شل النصي تلقائيًا عند بدء التشغيل
- كيفية إنشاء خدمة Systemd في Linux (CentOS 7)
- كيف يتم تكوين خدمة Linux للبدء تلقائيًا؟
- البرنامج النصي لبدء تشغيل نظام Centos 7
- البرنامج النصي لبدء تشغيل نظام Ubuntu
هل تريد معرفة المزيد على systemd؟ هنا ورقة الغش للرجوع اليها.
أتمنى أن تتعلم everything about systemd command
وإعداد برنامج نصي مغرور على جميع أنواع أنظمة تشغيل Linux.
STOP: للإصدار الأقدم من نظام التشغيل فقط
إذا كنت تقوم بتشغيل older version
من Redhat و Ubuntu و CentOS ، فستحتاج إلى برنامج نصي بهذا التنسيق.
- اذهب إلى
/etc/init
- قم بإنشاء ملف
crunchify.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# Run Crunchify's Java program indefinitely # description "Crunchify Java Process Restart Upstart Script" author "Crunchify.com (App Shah)" start on runlevel [ 2345 ] stop on runlevel [ ! 2345 ] respawn respawn limit 10 5 script su - root < < 'EOF' export JAVA_HOME =/ opt / java / jdk - 9 export PATH = $ PATH : $ JAVA_HOME / bin exec / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram EOF end script |
- فقط ابدأ الخدمة باستخدام
service crunchify start
- اتبع نفس خطوات التحقق المذكورة أعلاه
اسمحوا لي أن أعرف إذا كنت ترى أي مشكلة في تشغيل برنامج نصي مبتدئ في بيئتك. استمتع بيومك وأتمنى لكم ترميزًا سعيدًا.