OnWorks Linux و Windows Online WorkStations

الشعار

استضافة مجانية على الإنترنت لمحطات العمل

<السابق | المحتويات | التالي>

5.4. إدارة الخدمات‌


يستخدم كالي سيستم دي كنظام init الخاص به، وهو ليس مسؤولاً عن تسلسل التمهيد فحسب، بل يعمل أيضًا بشكل دائم كمدير خدمة كامل الميزات، وخدمات التشغيل والمراقبة.

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

يتم تمثيل كل خدمة بواسطة أ وحدة الخدمة، والذي يتم وصفه بواسطة ملف الخدمة الذي يتم شحنه عادةً

/lib/systemd/system/ (أو /run/systemd/system/، أو /etc/systemd/system/؛ يتم إدراجها حسب ترتيب الأهمية المتزايد، والأخير هو الذي يفوز). ربما يتم تعديل كل منها بواسطة الآخر اسم الخدمةملفات .service.d/*.conf في نفس مجموعة الدلائل. ملفات الوحدة هذه عبارة عن ملفات نصية عادية مستوحاة من ملفات "*.ini" المعروفة في نظام التشغيل Microsoft Windows مفتاح

= قيمنا أزواج مجمعة بين [قسم] الرؤوس. هنا نرى ملف خدمة نموذجي لـ /lib/systemd/system/ssh.service:


[وحدة]

الوصف=خادم OpenBSD Secure Shell After=network.target Auditd.service ConditionPathExists=!/etc/ssh/sshd_not_to_be_run


[الخدمات]

EnvironmentFile=-/etc/default/ssh ExecStart=/usr/sbin/sshd -D $SSHD_OPTS ExecReload=/bin/kill -HUP $MAINPID KillMode=process

إعادة التشغيل=عند الفشل RestartPreventExitStatus=255 النوع=إخطار


[التثبت]

WantedBy=multi-user.target الاسم المستعار=sshd.service

[وحدة]

الوصف=خادم OpenBSD Secure Shell After=network.target Auditd.service ConditionPathExists=!/etc/ssh/sshd_not_to_be_run


[الخدمات]

EnvironmentFile=-/etc/default/ssh ExecStart=/usr/sbin/sshd -D $SSHD_OPTS ExecReload=/bin/kill -HUP $MAINPID KillMode=process

إعادة التشغيل=عند الفشل RestartPreventExitStatus=255 النوع=إخطار


[التثبت]

WantedBy=multi-user.target الاسم المستعار=sshd.service


الوحدات المستهدفة هي جزء آخر من تصميم systemd. وهي تمثل الحالة المرغوبة التي تريد الوصول إليها من حيث الوحدات المفعلة (وهو ما يعني خدمة قيد التشغيل في حالة وحدات الخدمة). وهي موجودة بشكل أساسي كوسيلة لتجميع التبعيات على الوحدات الأخرى. عندما يبدأ النظام، فإنه يمكن الوحدات المطلوبة من الوصول إلى الافتراضي (وهو رابط رمزي ل Graphical.targetوالذي بدوره يعتمد عليه multi-user.target). لذلك يتم تنشيط جميع تبعيات تلك الأهداف أثناء التمهيد.

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

الوحدة التابعة في / الخ / سيستم دي / نظام /اسم الهدف.target.wants/ الدليل. وهذا هو بالضبط ما تمكين systemctl foo.service يفعل. عندما تقوم بتمكين خدمة ما، فإنك تطلب من systemd إضافة تبعية إلى الأهداف المدرجة في ملف مطلوب من قبل دخول [التثبت] قسم من ملف وحدة الخدمة. على العكس من ذلك، تعطيل Systemctl foo.service يسقط نفس الارتباط الرمزي وبالتالي التبعية.

تمكين و تعطيل الأوامر لا تغير أي شيء فيما يتعلق بالحالة الحالية للخدمات. إنها تؤثر فقط على ما سيحدث عند التمهيد التالي. إذا كنت تريد تشغيل الخدمة على الفور، فيجب عليك التنفيذ بدء systemctl foo.service. على العكس من ذلك، يمكنك إيقافه مع توقف Systemctl foo.service. يمكنك أيضًا فحص الحالة الحالية للخدمة باستخدام حالة systemctl foo.service، والذي يتضمن بشكل مفيد أحدث الأسطر من السجل المرتبط. بعد تغيير تكوين الخدمة، قد ترغب في إعادة تحميلها أو إعادة تشغيلها: تتم هذه العمليات إعادة تحميل systemctl foo.service و إعادة تشغيل systemctl foo. خدمة على التوالي.


صورة

# systemctl حالة postgresql

● postgresql.service - PostgreSQL RDBMS

تم التحميل: تم التحميل (/lib/systemd/system/postgresql.service؛ معطل؛ الإعداد المسبق للبائع:

معاق)

نشط : غير نشط (ميت)

# ls -al /etc/systemd/system/multi-user.target.wants/postgresql.service

ls: لا يمكن الوصول إلى "/etc/systemd/system/multi-user.target.wants/postgresql.service": لا

مثل هذا الملف أو الدليل

# systemctl تمكين postgresql

[...]

# ls -al /etc/systemd/system/multi-user.target.wants/postgresql.service

lrwxrwxrwx 1 جذر الجذر 38 21 أبريل 16:21 /etc/systemd/system/multi-user.target.wants/

postgresql.service -> /lib/systemd/system/postgresql.service

# systemctl حالة postgresql

● postgresql.service - PostgreSQL RDBMS

تم التحميل: تم التحميل (/lib/systemd/system/postgresql.service؛ ممكّن؛ الإعداد المسبق للمورد:

معاق)

نشط : غير نشط (ميت)

# systemctl start postgresql

# systemctl حالة postgresql

● postgresql.service - PostgreSQL RDBMS

تم التحميل: تم التحميل (/lib/systemd/system/postgresql.service؛ ممكّن؛ الإعداد المسبق للمورد:

معاق)

نشط: نشط (خرج) منذ الخميس 2016-04-21 16:22:29 بتوقيت شرق الولايات المتحدة؛ منذ ثانيتين العملية: 2 ExecStart=/bin/true (الرمز=منتهي، الحالة=6355/نجاح)

المعرف الشخصي الرئيسي: 6355 (الرمز=خروج، الحالة=0/نجاح)


21 أبريل 16:22:29 kali-rolling systemd[1]: بدء تشغيل PostgreSQL RDBMS... 21 أبريل 16:22:29 kali-rolling systemd[1]: بدء تشغيل PostgreSQL RDBMS.

أفضل الحوسبة السحابية لنظام التشغيل في OnWorks: