كيفية تمكين أو تعطيل الخدمات?

قرأت عن كيفية تمكين وتعطيل الخدمات في أوبونتو ويبدو أن هناك إمكانيات مختلفة لإدارتها.

الطريقة الأولى التي وجدتها هي update-rc.d لإضافة خدمات جديدة لبدء التشغيل ، والتي تهدف على /etc/init.d المجلد ومحتوياته.

والآخر وجدت هو تحرير .conf الملفات في /etc/init مجلد.

ما هي الطريقة الموصى بها لتمكين / تعطيل / إضافة الخدمات ولماذا?

هل يمكن أن يرجى إعطاء خطوة الرصاص قصيرة خطوة سبيل المثال على كيفية إضافة خدمة في أوبونتو وتمكين وتعطيله?

هناك خدمات يمكن تمكينها / تعطيلها باستخدام واجهة المستخدم الرسومية (مثل startup التطبيق) أو المحطة.

للمحطة لديك العديد من الخيارات. أول, فتح محطة (اكتب & مثل; محطة & مثل; في اندفاعة, فمثلا, وفتحه). ثم:

خدمات التمكين / التعطيل المؤقت

لإيقاف وبدء الخدمات مؤقتا (لا تمكين / تعطيلها للأحذية في المستقبل) ، يمكنك كتابة service SERVICE_NAME [action]. على سبيل المثال:

  • sudo service apache2 stop: سوف توقف خدمة أباتشي حتى إعادة التشغيل أو حتى بدء تشغيله مرة أخرى.
  • sudo service apache2 start: سوف ابدأ خدمة أباتشي على افتراض أنه توقف من قبل.
  • service apache2 status: سوف اقول لكم حالة الخدمة ، إذا كان إما تمكين / تشغيل المعوقين / لا يعمل.
  • sudo service apache2 restart: سوف إعادة التشغيل الخدمة. هذا هو الأكثر شيوعا عندما قمت بتغيير ، ملف التكوين. في هذه الحالة ، إذا قمت بتغيير تكوين فب أو تكوين أباتشي. إعادة تشغيل سيوفر لك من الحاجة إلى إيقاف / بدء مع 2 خطوط الأوامر
  • service apache2: في هذه الحالة ، نظرا لأنك لم تذكر الإجراء المطلوب تنفيذه للخدمة ، فسوف يعرض لك جميع الخيارات المتاحة لتلك الخدمة المحددة. هذا الجانب يختلف اعتمادا على الخدمة ، على سبيل المثال ، مع الخلية فإنه يذكر فقط أنه يفتقد معلمة. بالنسبة للخدمات الأخرى مثل خدمة الشبكات ، ستذكر القائمة الصغيرة لجميع الخيارات المتاحة.

النظام (د)

بدءا من أوبونتو 15.04 ، سيتم إهمال مغرور لصالح سيستمد. مع سيستيمد لإدارة الخدمات يمكننا القيام بما يلي (من خلال systemctl action SERVICE نمط):

  • sudo systemctl start SERVICE: استخدامه لبدء الخدمة. لا تستمر بعد إعادة التشغيل
  • sudo systemctl stop SERVICE: استخدامه لوقف الخدمة. لا تستمر بعد إعادة التشغيل
  • sudo systemctl restart SERVICE: استخدامه لإعادة تشغيل الخدمة
  • sudo systemctl reload SERVICE: إذا كانت الخدمة تدعم ذلك ، فإنه سيتم إعادة تحميل ملفات التكوين المتعلقة به دون مقاطعة أي عملية تستخدم الخدمة.
  • systemctl status SERVICE: يظهر حالة الخدمة. يخبر ما إذا كانت الخدمة قيد التشغيل حاليا.
  • sudo systemctl enable SERVICE: يتحول الخدمة على ، على إعادة التشغيل التالي أو على الحدث بداية المقبل. استمر بعد إعادة التشغيل.
  • sudo systemctl disable SERVICE: إيقاف تشغيل الخدمة على إعادة التشغيل التالي أو على الحدث المحطة التالية. استمر بعد إعادة التشغيل.
  • systemctl is-enabled SERVICE: تحقق مما إذا كانت الخدمة قد تم تكوينها حاليا لبدء التشغيل أم لا عند إعادة التشغيل التالية.
  • systemctl is-active SERVICE: تحقق مما إذا كانت الخدمة نشطة حاليا.
  • systemctl show SERVICE: عرض جميع المعلومات حول الخدمة.
  • sudo systemctl mask SERVICE: تعطيل الخدمة بالكامل عن طريق ربطها بـ /dev/null؛ لا يمكنك بدء تشغيل الخدمة يدويا أو تمكين الخدمة.
  • sudo systemctl unmask SERVICE: يزيل الرابط إلى /dev/null ويعيد القدرة على تمكين وأو يدويا بدء الخدمة.

مغرور (تم إيقافه منذ 15.04)

إذا أردنا استخدام الطريقة الرسمية المبتدئة (لاحظ أنه في الوقت الحالي ، لم يتم تحويل جميع الخدمات إلى مغرور) ، فيمكننا استخدام الأوامر التالية:

status SERVICE - سيخبرنا هذا إذا كانت الخدمة المحولة قيد التشغيل أم لا. لاحظ أن هذا تم إهماله لصالح start, stop, status &أمبير; restart. وسوف اقول لنا أيضا إذا لم يتم تحويل خدمة لمغرور:

عادة ما تقوم الخدمة المحولة بإخراج الحالة الحالية (البدء ، التشغيل ، التوقف...) ومعرف العملية. الخدمة غير المحولة ستعطي خطأ حول وظيفة غير معروفة.

قد تعمل بعض الاختصارات فقط مع service الأمر أعلاه ولكن ليس مع الأوامر أدناه ما لم يتم تحويلها بنسبة 100 ٪ إلى خدمات مغرور:

  • sudo start mysql: ابدأ
  • sudo stop mysql: توقف
  • sudo restart mysql: إعادة التشغيل
  • sudo status smbd: الحالة

تمكين / تعطيل الخدمة

لتبديل الخدمة من البدء أو التوقف بشكل دائم ، ستحتاج إلى:

echo manual | sudo tee /etc/init/SERVICE.override

حيث المقطع manual سوف تتوقف مغرور من تحميل الخدمة تلقائيا على التمهيد التالي. أي خدمة مع .override سوف تنتهي الأسبقية على ملف الخدمة الأصلي. ستتمكن فقط من بدء الخدمة يدويا بعد ذلك. إذا كنت لا تريد هذا ثم ببساطة حذف .override.على سبيل المثال:

echo manual | sudo tee /etc/init/mysql.override

سوف يضع خدمة الخلية في manual الوضع. إذا كنت لا تريد هذا ، بعد ذلك يمكنك ببساطة القيام به

sudo rm /etc/init/mysql.override

وإعادة تشغيل الخدمة لبدء تلقائيا مرة أخرى. بالطبع لتمكين الخدمة ، فإن الطريقة الأكثر شيوعا هي تثبيتها. إذا قمت بتثبيت أباتشي ، إنجن إكس ، الخلية أو غيرها ، فإنها تبدأ تلقائيا عند الانتهاء من التثبيت وسوف تبدأ في كل مرة تمهيد الكمبيوتر. تعطيل ، كما ذكر أعلاه ، سوف تستفيد من الخدمة manual.

حاليا هناك في الواقع ثلاث طرق مختلفة للبرمجيات أن تبدأ كخدمة في أوبونتو, سيسف, مغرور و النظام (د). يتم تعريف الخدمة هنا كبرنامج يديره النظام في الخلفية ، بدلا من واحد بدأ وتشغيله مباشرة من قبل المستخدم.

سيسف

كانت الطريقة التقليدية لبدء الخدمات في لينكس هي وضع نص برمجي في /etc/init.d، ثم استخدم update-rc.d القيادة (أو في التوزيعات القائمة على ريدهات, chkconfig) لتمكينه أو تعطيله.

يستخدم هذا الأمر بعض المنطق المعقد بشكل معتدل لإنشاء روابط رمزية في /etc/rc#.d، التي تتحكم في ترتيب بدء الخدمات. إذا قمت بتشغيل ls /etc/rc2.d يمكنك أن ترى الترتيب الذي سيتم قتل الخدمات مع اسم ملف مثل K##xxxx وبدأت مع أسماء الملفات S##xxxx. ال ## في S##xxxx يعني "بدء الطلب" للخدمة xxxx. على العكس من ذلك ، فإن ## في K##xxxx يعني أمر القتل للخدمة xxxx.

قضية رئيسية واحدة مع سيسف كان ذلك عند تمهيد النظام, كان لا بد من القيام بكل شيء في المسلسل ، شيئا تلو الآخر، مما يجعل أوقات تمهيد النظام بطيئة حقا. جرت محاولات لموازاة ذلك ، لكنها كانت عشوائية ويصعب الاستفادة منها بشكل كامل. كان هذا هو السبب الرئيسي الذي مغرور تم إنشاؤه.

مغرور

يستخدم مغرور ملفات تعريف الوظيفة في /etc/init لتحديد الأحداث التي يجب أن تبدأ فيها الخدمة. لذلك ، في حين أن النظام هو تمهيد ، مغرور عمليات الأحداث المختلفة ، ومن ثم يمكن أن تبدأ خدمات متعددة في نفس الوقت. وهذا يسمح لهم بالاستفادة الكاملة من موارد النظام، على سبيل المثال ، عن طريق بدء تشغيل خدمة مرتبطة بالقرص أثناء تشغيل خدمة أخرى مرتبطة بو ، أو أثناء انتظار الشبكة لتعيين عنوان إب ديناميكي.

يمكنك ان ترى كل من الملفات المهمة مغرور عن طريق تشغيل ls /etc/init/*.conf

اسمحوا لي أن أتوقف هنا وأقول أنه إذا كنت لا تعرف ما هي الخدمة ، أو ما تفعله، فلا تقم بتعطيلها!

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

هي خدمة قائمة على مغرور?

من أجل معرفة ما إذا كانت الخدمة مستندة إلى مغرور ، يمكنك تشغيل أمر الحالة:

status servicename

إذا كان مغرور وظيفة ، وسوف تظهر هذه:

$ status statdstatd start/running, process 942

ولكن إذا لم يكن كذلك ، سترى شيئا أكثر من هذا القبيل:

$ status apache2status: Unknown job: apache2

في هذه الحالة, apache2 لم يتم تحويلها إلى مغرور. لذلك ، لتعطيل apache2 أنت فقط تركض

sudo update-rc.d apache2 disablesudo service apache2 stop

تعطيل الخدمات (وظائف) في مغرور

تعريفات وظيفة مغرور لم يكن لديك update-rc.d الأمر. لتعطيل المهمة ، تحتاج إلى تحرير ملف المهمة مباشرة لتعطيله. هناك طريقتان للقيام بذلك.

إذا كنت تريد أن تظل قادرا على بدء تشغيله يدويا، فأنت بحاجة إلى التعليق على start on شرط. لنفترض أنك تريد التثبيت سامبا، ولكن لا يكون ذلك يبدأ تلقائيا. هنا هو ملف العمل (في ناتي):

description "SMB/CIFS File Server"author      "Steve Langasek <steve.langasek@ubuntu.com>"start on local-filesystemsstop on runlevel [!2345]respawnpre-start script    RUN_MODE="daemons"    [ -r /etc/default/samba ] && . /etc/default/samba    [ "$RUN_MODE" = inetd ] && { stop; exit 0; }    install -o root -g root -m 755 -d /var/run/sambaend scriptexec smbd -F

لتعطيل سامبا، يمكنك فقط وضع # أمام "start on local-filesystems". لاحظ أنه على الرغم من أنه لن يبدأ النسخ الاحتياطي في التمهيد، إلا أنك لا تزال بحاجة إلى إيقافه هذه المرة باستخدام

sudo service smbd stop

إذا, ومع ذلك, أنت لا تريد أبدا سامبا للبدء ، أقترح بالفعل إزالة الحزمة. إذا ، ومع ذلك ، كنت تريد تثبيته ، ولكن ليس ستارتبل ، يمكنك أيضا القيام به:

mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled

تعطيل خدمة باستخدام بدء / إيقاف مقطع (اعتبارا من 11.04)

بدءا من إصدار مغرور التي ستكون في 11.04 ، هناك كلمة رئيسية جديدة تعطيل start on و stop on موشحات: manual. لذلك هناك طريقة أخرى لتعطيل الخدمة اعتبارا من 11.04 وهي القيام بذلك:

echo 'manual' | sudo tee /etc/init/mysql.override# command from root shellecho manual >> /etc/init/mysql.override

يمكنك إنشاء override ملف لتعطيل خدمة دون تحرير تعريف المهمة على الإطلاق ، فقط عن طريق وضع manual الكلمة في ذلك.

سيسف-أرسي-أسنف

حاول استخدام سيسف-أرسي-أسنف

sudo apt-get install sysv-rc-conf

وللبدء في إدارة الخدمات ، تنفيذ

sudo sysv-rc-conf

والتي سوف تظهر نافذة تفاعلية مثل هذا

يمكنك التنقل عبر الصفحات باستخدام Ctrl+n للصفحة التالية و Ctrl+p للصفحة السابقة. يمكنك تمكين الخدمات وتعطيلها عن طريق تحديد SPACE على مستويات التشغيل المطلوبة.

وظائف-مشرف

بديل آخر سيكون وظائف-مشرف عن طريق تثبيت من خلال

sudo apt-get install jobs-admin

والذي يوفر أيضا واجهة المستخدم الرسومية مثل هذا

لإظهار المزيد من الوظائف ، عليك وضع علامة على إظهار الوظائف المحمية من القائمة الخاصة به.

تشكونفيغ

والخيار الثالث سيكون تشكونفيغ,

sudo apt-get install chkconfig

ويمكن استخدامه عن طريق كلي chkconfig، تظهر قائمة تشغيل / إيقاف وظائف.كما يمكننا عرض خدمات النظام باستخدام chkconfig –list

يمكن تشغيل الخدمات باستخدام

chkconfig <service> on

يمكن إيقاف تشغيل الخدمات باستخدام

chkconfig <service> off

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

chkconfig --add <service>

تحديث-الصليب الأحمر.d

ويمكن إحالة خيار آخر هنا تحديث-الصليب الأحمر.d ، وأوضح لفترة وجيزة هنا.

لاحظ أن لخادم أوبونتو 12.04, update-rc.d يستخدم بدلا من تشكونفيغ.

بالنسبة لأولئك منا الذين يديرون أوبونتو على سه ، وأعتقد أن الخيار أجمل هو rcconf - برنامج يستند إلى نص:

sudo apt-get install rcconfsudo rcconf

انتقل مع علامة التبويب ومفاتيح الأسهم ، اضغط على مفتاح المسافة لتمكين / تعطيل. التغييرات مستمرة عبر إعادة التشغيل.

لقطة شاشة مستعارة من هذه المدونة، مما يدل أيضا sysv-rc-conf - أداة مماثلة تسمح لك أيضا بتعيين مستوى التشغيل. (بالنسبة لأولئك الذين يحدث لرعاية ما يكفي عن مستويات التشغيل ترغب في تغييرها :)

لسوء الحظ، رسكونف لا يعمل مع مغرور (الخدمات المدرجة في /etc/init/*) ، فقط مع الآلية التقليدية (ls -l /etc/init.d/* - تلك التي ليست روابط رمزية).

لحسن الحظ ، العديد من الخدمات التي هي ذات الصلة عند سه جي في لخادم (أباتشي ، تومكات ، مددم ، بوينك العميل...) لم يتم نقلها إلى مغرور بعد.

لقد اكتشفت ذلك حتى الكترونية هناك أداة واجهة المستخدم الرسومية هذه ، شيء مثل بوم ولكن متوافق مع مغرور: وظائف-مشرف

sudo apt-get install jobs-admin

تحرير ملف التكوين مغرور القائمة (كما هو موضح أعلاه) ليست فكرة جيدة. يمكن أن توفر الحزمة المحدثة تكوينا محدثا ، وكان عليك تكرار التغييرات مرارا وتكرارا.

من خلال إلقاء نظرة على man 5 init سيجد المرء حلا أكثر ملاءمة: استخدام تكوين تجاوز. مثال قصير: لنفترض أن لدينا خدمة تسمى "فوبار" ، لذلك سيكون هناك ملف يسمى /etc/init/foobar.conf مع التكوين مغرور لها. الآن كنت لا تريد إزالة هذا الملف, ولا تعديله but ولكن لا تريد هذه الخدمة لتشغيل? لذا ضع تجاوز ملف بجانبه: /etc/init/foobar.override، تحتوي على (اختياريا الرأس مع الوصف و) بدلا من ذلك start on / stop on خطوط قمت بوضع خط مع كلمة واحدة: manual. بهذه الطريقة كنت اقول مغرور لاستخدام أساسا foobar.conf، ولكن تجاوز تعريف بدء التشغيل لبدء هذه الخدمة فقط عند فرضها يدويا (عبر service foobar start في مثالنا).

هناك أيضا مدير التمهيد.

لتثبيت: sudo apt-get install bum

مزيد من المعلومات: http://www.marzocca.net/linux/bum.html

أبسط طريقة بالنسبة لي وأنا استخدم كلي فقط هو update-rc.d.

لتمكين أو تعطيل التشغيل التلقائي عند إعادة التشغيل وما إلى ذلك :

sudo update-rc.d <daemon|service> <enable|disable>

مثال:

update-rc.d spamassassin enable

لإيقاف أو بدء البرنامج الخفي أو التحقق من حالته:

sudo service <daemon|service> <start|stop|restart|reload|force-reload|status>

مثال:

sudo service spamassassin status  spamassassin.service - Perl-based spam filter using text analysis   Loaded: loaded (/lib/systemd/system/spamassassin.service; disabled; vendor preset: enabled)   Active: active (running) since Thu 2020-05-21 13:04:10 SAST; 4s ago  Process: 1928 ExecStart=/usr/sbin/spamd -d --pidfile=/var/run/spamd.pid $OPTIONS (code=exited, status=0/SUCCES Main PID: 1949 (spamd)    Tasks: 3 (limit: 2361)   CGroup: /system.slice/spamassassin.service           ├─1949 /usr/bin/perl -T -w /usr/sbin/spamd -d --pidfile=/var/run/spamd.pid --create-prefs --max-child           ├─1951 spamd child           └─1952 spamd child`  etc  etc

update-rc.d يمكن أن تفعل أكثر قليلا من الأساسي هو مبين أعلاه:

usage: update-rc.d [-f] <basename> remove       update-rc.d [-f] <basename> defaults       update-rc.d [-f] <basename> defaults-disabled       update-rc.d <basename> disable|enable [S|2|3|4|5]        -f: force

كما هو الحال دائما ؛ كنت فان الرجوع مانباج.

أنا استخدم ستاسر:

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

فإنه يدل على الخدمات والعمليات أيضا. مجموعة أدوات نظام واجهة المستخدم الرسومية كاملة.

لاحظ أن الإجابة عن أوبونتو 14.04 لا تزال مفقودة هنا.

@مارسيلونوتشيو: بدءا من أوبونتو 15.04 ، تم إهمال مغرور لصالح سيستمد.

للتواصل يرجى الاطلاع على: How to restart the networking service? - Ask Ubuntu

[هذا] (Enabling/Disabling Services in Fedora 12 | RyuSlash's Blog) سيكون مفيدا لأولئك الذين عالقون في فيدورا 12 وهبطوا هنا. في حالة لينكروت ‘تشكونفيغ’ هو ما كنت تبحث عنه.

يتم تكوين برامج التشغيل التلقائي في ‘تلقائي’ يظهر أو في’*.خدمة ‘الملفات في عدة مواقع ، وكذلك في’ الحرف الأول.د ’ أو ‘كرونتاب’. انظر: upstart - How to start application after login on CentOS? - Unix & Linux Stack Exchange