چگونه سرویس ها را فعال یا غیرفعال کنیم؟


به جواب پذیرفته شده بروید




من در مورد نحوه فعال سازی و غیرفعال کردن خدمات در اوبونتو می خوانم و به نظر می رسد که امکانات مختلفی برای مدیریت آنها وجود دارد.

اولین روشی که پیدا کردم update-rc.d اضافه کردن خدمات جدید برای راه اندازی است که هدف آن /etc/init.d پوشه و محتویات آن است.

مورد دیگری که پیدا کردم ویرایش .conf فایل ها در /etc/init پوشه است.

روش پیشنهادی برای فعال سازی / غیرفعال کردن / اضافه کردن خدمات چیست و چرا؟

آیا می توانید لطفاً یک گام به گام ضد گلوله کوتاه در مورد نحوه اضافه کردن سرویس در اوبونتو و فعال کردن و غیرفعال کردن آن بگویید؟


832





2010-12-29




8 :تعداد پاسخها


خدماتی وجود دارد که با استفاده از رابط کاربری گرافیکی (مانند startup برنامه) یا ترمینال می توان آن را فعال یا غیرفعال کرد .

برای ترمینال چندین گزینه دارید. ابتدا یک ترمینال را باز کنید (مثلاً "در ترمینال" را در خط "تایپ کنید" و آن را باز کنید). سپس:

خدمات فعال / غیرفعال موقت

برای متوقف کردن و شروع سرویس به طور موقت (آنها را برای چکمه های آینده فعال یا غیرفعال نمی کند) ، می توانید تایپ کنید service SERVICE_NAME [action] . مثلا:

  • sudo service apache2 stop (آیا می STOP خدمات آپاچی تا راه اندازی مجدد و یا تا زمانی که شما آن را شروع دوباره).

  • sudo service apache2 start (آیا شروع این سرویس آپاچی فرض آن را قبل متوقف شد.).

  • service apache2 status (اگر این گزینه را فعال یا اجرا کنید یا غیرفعال شده باشد / وضعیت این سرویس را به شما می گوید).

  • sudo service apache2 restart (آیا سرویس را مجدداً مجدداً استفاده می کند. این مورد معمولاً هنگام تغییر ، یک پرونده پیکربندی استفاده می شود. در این حالت ، اگر پیکربندی PHP یا پیکربندی Apache را تغییر دهید. راه اندازی مجدد باعث می شود که از متوقف کردن یا شروع با 2 خط فرمان جلوگیری کنید) )

  • service apache2 (در این حالت ، از آنجایی که شما برای اجرای سرویس ACTION را ذکر نکرده اید ، تمام گزینه های موجود برای آن سرویس خاص را به شما نشان می دهد.) این جنبه بسته به سرویس متفاوت است ، به عنوان مثال با MySQL فقط ذکر آن را نشان می دهد. پارامتر موجود نیست برای سایر خدمات مانند سرویس شبکه ، لیست کوچکی از گزینه های موجود را ذکر می کند.


سیستم

با شروع اوبونتو 15.04 ، Upstart به نفع Systemd کاهش می یابد. با استفاده از Systemd برای مدیریت خدمات می توانیم موارد زیر را انجام دهیم (از طریق systemctl action SERVICE الگوی):

systemctl start SERVICE - برای شروع سرویس از آن استفاده کنید. بعد از راه اندازی مجدد ادامه نمی یابد

systemctl stop SERVICE - برای متوقف کردن خدمات از آن استفاده کنید. بعد از راه اندازی مجدد ادامه نمی یابد

systemctl restart SERVICE - از آن برای راه اندازی مجدد یک سرویس استفاده کنید

systemctl reload SERVICE - اگر سرویس از آن پشتیبانی کند ، پرونده های پیکربندی مربوط به آن را بار دیگر بارگیری می کند بدون اینکه هیچ روشی که از این سرویس استفاده می کند را قطع کند.

systemctl status SERVICE - وضعیت یک سرویس را نشان می دهد. می گوید سرویس در حال حاضر در حال اجرا است یا خیر.

systemctl enable SERVICE - سرویس را روشن ، در راه اندازی مجدد بعدی یا رویداد شروع بعدی. پس از راه اندازی مجدد ادامه می یابد.

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 و امکان فعال سازی و یا شروع دستی سرویس را بازیابی می کند.


UPSTART (از 15.04 مستهلک شد)

اگر می خواهیم از روش رسمی Upstart استفاده کنیم (توجه داشته باشید که در حال حاضر همه خدمات به Upstart تبدیل نشده اند) ، می توانیم از دستورات زیر استفاده کنیم:

status SERVICE - این به ما می گوید که یک سرویس تبدیل شده در حال اجرا است یا خیر. توجه داشته باشید که این به نفع توصیه start ، stop ، status و restart . همچنین به ما می گوید که آیا هنوز یک سرویس به سمت بالادست تبدیل نشده است:

یک سرویس تبدیل شده معمولاً وضعیت فعلی (شروع ، اجرای ، توقف ...) و شناسه پردازش را به دست می آورد. یک سرویس غیر تبدیل شده در مورد یک کار ناشناخته خطایی ایجاد می کند .

بعضی از میانبرها فقط با service دستور فوق می توانند کار کنند اما با دستورات زیر کار نمی کنند مگر اینکه 100٪ آنها به سرویس های upstart تبدیل شوند:

  • شروع - sudo start mysql

  • توقف - sudo stop mysql

  • رستوران - sudo restart mysql

  • وضعیت - sudo status smbd

فعال / غیرفعال کردن یک سرویس

برای جابجایی یک سرویس از شروع یا متوقف کردن دائمی ، لازم است:

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

جایی که تنگی manual مانع از بارگیری خودکار سرویس در بوت بعدی از Upstart می شود. هرگونه خدمات با .override پایان ، بر پرونده خدمات اصلی ارجحیت خواهد داشت. فقط پس از آن می توانید سرویس را به صورت دستی شروع کنید. اگر نمی خواهید این کار را انجام دهید ، پس از آن به سادگی حذف کنید .override . مثلا:

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

سرویس MySQL را به manual حالت آماده قرار می دهد. اگر این را نمی خواهید ، پس از آن می توانید به سادگی انجام دهید

 sudo rm /etc/init/mysql.override
 

و دوباره راه اندازی مجدد کنید تا این سرویس دوباره به طور خودکار شروع شود. البته برای فعال کردن سرویس ، متداول ترین روش نصب آن است. اگر Apache ، Nginx ، MySQL یا دیگران را نصب کنید ، آنها به طور خودکار پس از اتمام نصب شروع می شوند و هر بار کامپیوتر بوت می شوند. غیرفعال کردن ، همانطور که در بالا ذکر شد ، از خدمات استفاده می کند manual .


847



در حال حاضر سه راه مختلف وجود دارد تا نرم افزار به عنوان سرویس در Ubuntu ، SysV ، Upstart و systemd راه اندازی شود . یک سرویس در اینجا به عنوان برنامه ای که توسط سیستم در پس زمینه اجرا می شود ، تعریف می شود ، بر خلاف یک سرویس که مستقیماً توسط کاربر شروع و اجرا می شود.

SysV

روش سنتی برای شروع خدمات در لینوکس ، قرار دادن یک اسکریپت /etc/init.d ، و سپس استفاده از update-rc.d دستور (یا در دایرکتوری مبتنی بر RedHat chkconfig ) برای فعال یا غیرفعال کردن آن بود.

این دستور با استفاده از برخی از منطق ملایم و پیچیده برای ایجاد علائم ارتباطی /etc/rc#.d ، که ترتیب شروع خدمات را کنترل می کند. در صورت اجرا ls /etc/rc2.d می توانید دستورالعمل کشتن خدمات با نام پرونده را مشاهده کنید K##xxxx و با نام پرونده ها شروع به کار کنید S##xxxx . این ## به S##xxxx معنی "سفارش شروع" برای خدمات است xxxx . در مقابل ، این ## به K##xxxx معنای دستور کشتار برای خدمات است xxxx .

یک مسئله مهم در مورد SysV این بود که هنگام بوت کردن سیستم ، همه چیز باید به صورت سریالی انجام می شد ، یک چیز بعد از دیگری ، ساختن زمان های بوت سیستم بسیار کند است . تلاشهایی برای موازی سازی این امر انجام شد ، اما آنها کاملاً سخت و کاملاً سخت بودند و از آن استفاده می کردند. این دلیل اصلی ایجاد Upstart بود.

تازه به دوران رسیده

Upstart از پرونده های تعریف شغل استفاده می کند /etc/init تا درمورد وقایع یک سرویس ، باید تعریف کند. بنابراین ، در حالی که سیستم در حال بوت شدن است ، upstart مراحل مختلفی را پردازش می کند ، و سپس می تواند چندین سرویس را بطور موازی شروع کند. این امر به آنها اجازه می دهد تا با راه اندازی سرویس متصل به دیسک ، در حین اجرای سرویس دیگری که به CPU متصل است ، از منابع سیستم کاملاً استفاده کنند ، یا اینکه شبکه منتظر یک آدرس IP پویا است.

با اجرا می توانید تمام پرونده های کار در بالاست را مشاهده کنید ls /etc/init/*.conf

بگذارید همین جا متوقف شوم و بگویم که اگر نمی دانید یک سرویس چیست یا چه کاری انجام می دهد ، آن را غیرفعال نکنید!

همه خدمات به upstart تبدیل نشده اند. در حالی که در چند ماه گذشته روی تیم سرور در Canonical کار کردم ، من روی چندین پرونده شغلی تبدیل شده کار کرده ام ، و بهترین چیز این است که به فرد اجازه می دهد تا از همه فیلم نامه "جادو" خلاص شود و فقط قرار دهید چند دستور در اینجا و آنجا برای تعریف دقیقا نحوه شروع سرویس و چیز دیگری نیست. اما در حال حاضر ، تنها تعداد معدودی از سرویس های شبکه سنتی مانند ماهی مرکب و سامبا تبدیل شده اند.

آیا یک سرویس مبتنی بر بالادستی است؟

برای اینکه بفهمید یک سرویس مبتنی بر upstart است ، می توانید دستور وضعیت را اجرا کنید:

 status servicename
 

اگر این یک کار مبتدی است ، این را نشان می دهد:

 $ status statd
statd start/running, process 942
 

اما اگر اینگونه نباشد ، چیزی شبیه به این را مشاهده خواهید کرد:

 $ status apache2
status: Unknown job: apache2
 

در این حالت ، apache2 به بالادست تبدیل نشده است . بنابراین ، برای غیرفعال کردن apache2 شما فقط اجرا می کنید

 sudo update-rc.d apache2 disable
sudo service apache2 stop
 

غیرفعال کردن خدمات (مشاغل) در مراحل اولیه

تعاریف شغلی را پشت سر بگذارید update-rc.d دستور ندارد. برای غیرفعال کردن کار ، باید فایل کار را مستقیماً ویرایش کنید تا غیرفعال شود. دو راه برای انجام این کار وجود دارد.

اگر می خواهید هنوز بتوانید به طور دستی آن را شروع کنید ، پس باید شرایط را اظهار نظر کنید start on . می گویند شما می خواهید سامبا را نصب کنید ، اما نباید آن را به طور خودکار شروع کنید. پرونده کار (به صورت طبیعی) در اینجا آمده است:

 description "SMB/CIFS File Server"
author      "Steve Langasek <[email protected]>"

start on local-filesystems
stop on runlevel [!2345]

respawn

pre-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/samba
end script

exec smbd -F
 

برای غیرفعال کردن سامبا ، فقط می توانید # جلوی " start on local-filesystems " قرار دهید. توجه داشته باشید که اگر این نسخه پشتیبان از بوت شروع نشود ، باز هم باید این بار این کار را متوقف کنید

 sudo service smbd stop
 

اگر با این حال ، شما هرگز نمی خواهید سامبا را شروع کنید ، من پیشنهاد می کنم بسته را از بین ببرید . اگر ، با این حال ، شما می خواهید آن را نصب کنید ، اما قابل شروع نیست ، می توانید انجام دهید:

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

غیرفعال کردن سرویس با استفاده از stanza start / stop (از تاریخ 11.04)

با شروع نسخه upstart که در 11.04 خواهد بود ، کلمه کلیدی جدیدی وجود دارد که start on و stop on stanzas را غیرفعال می کند manual :. بنابراین راه دیگر برای غیرفعال کردن سرویس از 11.04 انجام است:

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

# command from root shell
echo manual >> /etc/init/mysql.override
 

شما فقط می توانید override با قرار دادن manual کلمه کلیدی در آن ، فایلی را برای غیرفعال کردن سرویس بدون ویرایش تعریف شغل ایجاد کنید.


357



sysv-rc-conf

سعی کنید از sysv-rc-conf استفاده کنید

 sudo apt-get install sysv-rc-conf
 

و برای شروع مدیریت خدمات ، اجرای

 sudo sysv-rc-conf
 

که مانند این پنجره تعاملی ایجاد می کند


توضیحات تصویر را اینجا وارد کنید

می توانید با استفاده از صفحات Ctrl+n بعدی و Ctrl+p صفحه قبلی از طریق صفحات حرکت کنید . می توانید با انتخاب SPACE مسیرهای مرتفع مورد نظر ، خدمات را فعال و غیرفعال کنید.

شغل-مدیر

جایگزین دیگر می تواند با نصب از طریق Jobs-Admin

 sudo apt-get install jobs-admin
 

که همچنین GUI را مانند این ارائه می دهد


پیش نمایش مشاغل-مدیر

برای نشان دادن مشاغل بیشتر ، باید منوی Show Protected Jobs را از فهرست آن تیک بزنید .

chkconfig

و گزینه سوم chkconfig خواهد بود ،

 sudo apt-get install chkconfig
 

می توان از طریق CLI استفاده کرد chkconfig و لیستی از مشاغل روشن / خاموش را نشان می دهد. همچنین می توانیم با استفاده از خدمات سیستم را مشاهده کنیم chkconfig –list

خدمات را می توان با استفاده از روشن کرد

 chkconfig <service> on
 

خدمات را می توان با استفاده از کار خاموش کرد

 chkconfig <service> off
 

و حتی می توانیم با استفاده از یک اسکریپت اولیه مناسب با عناوین مناسب ، خدمات خودمان را اضافه کنیم.

 chkconfig --add <service>
 

به روز رسانی-rc.d

و گزینه دیگری را می توان در اینجا به روزرسانی-rc.d اشاره کرد که مختصراً در اینجا توضیح داده شده است .

توجه داشته باشید که برای سرور Ubuntu 12.04 ، update-rc.d به جای chkconfig استفاده می شود.


129



برای کسانی از ما که اوبونتو را بیش از ssh اجرا می کنیم ، فکر می کنم بهترین گزینه این است rcconf - یک برنامه مبتنی بر متن:

 sudo apt-get install rcconf
sudo rcconf
 


متن جایگزین

با کلیدهای پیکان و پیکان حرکت کنید ، برای فعال کردن و غیرفعال کردن نوار فاصله را فشار دهید. تغییرات در سراسر شروع مجدد ادامه دارند.

تصویر صفحه وام گرفته شده از این وبلاگ ، که همچنین نشان می دهد sysv-rc-conf - ابزاری مشابه که به شما امکان می دهد مرتب سازی سطح را نیز تنظیم کنید. (برای کسانی که اتفاق می افتد به اندازه کافی مراقب runlevels هستند که مایل به تغییر آنها باشند :)

متأسفانه ، rcconf /etc/init/* فقط با سازوکار سنتی ( ls -l /etc/init.d/* - مواردی که پیوندهای نمادین نیستند) با upstart (سرویس های ذکر شده در ) کار نمی کند .

خوشبختانه ، بسیاری از خدماتی که هنگام ورود به یک سرور (Apache ، Tomcat ، mdadm ، boinc-klient ...) مرتبط هستند ، هنوز به راه اندازی نشده اند.


48



فهمیدم که این ابزار GUI وجود دارد ، چیزی مانند BUM اما با Upstart سازگار است:

  • شغل-مدیر

     sudo apt-get install jobs-admin
     

18



ویرایش پرونده پیکربندی upstart موجود (همانطور که در بالا توضیح داده شد) ایده خوبی نیست. یک بسته به روز شده می تواند یک پیکربندی به روز شده را ارائه دهد ، و شما باید تغییرات خود را بارها و بارها تکرار کنید.

با نگاهی man 5 init به یک راه حل مناسب تر می یابید: استفاده از پیکربندی اصولی. مثال کوتاه: بگویید ما یک سرویس به نام "foobar" داریم ، بنابراین یک پرونده به نام /etc/init/foobar.conf پیکربندی بالادست آن وجود دارد. اکنون شما نمی خواهید آن پرونده را حذف کنید و آنرا اصلاح نکنید - اما نه شما می خواهید این سرویس اجرا شود؟ بنابراین یک پرونده بازشو در کنار آن قرار دهید: /etc/init/foobar.override حاوی (به صورت اختیاری عنوان با توضیحات و) به جای start on / / stop on خطهایی که شما یک خط را با یک کلمه قرار دهید manual :. به این ترتیب شما به upstart می گویید که اساساً از گزینه foobar.conf startup استفاده کنید ، اما برای تأیید آن ، راه اندازی را لغو کنید تا فقط هنگام اجرای دستی آن سرویس را شروع کنید (از طریق service foobar start مثال ما).


12



همچنین Boot-Up Manager نیز وجود دارد .

برای نصب: sudo apt-get install bum

اطلاعات بیشتر: http://www.marzocca.net/linux/bum.html


توضیحات تصویر را اینجا وارد کنید


8



من از Stacer استفاده می کنم. خدمات و فرایندها را نیز نشان می دهد. جعبه ابزار سیستم کامل GUI. https://github.com/oguzhaninan/Stacer


2



انتشارات مرتبط


چگونه سرویس شبکه را مجدداً راه اندازی کنیم؟

چگونه می توان Apport را فعال یا غیرفعال کرد؟

چگونه منوی برنامه جهانی را فعال یا غیرفعال کنم؟

خواب زمستانی هنوز پس از فعال کردن از طریق polkit ، در ساعت 13.10 از فهرست فهرست گم شده است. چگونه فعال کنیم؟

چگونه کاربر را فعال یا غیرفعال کنیم؟

نحوه راه اندازی مجدد سرویس-وحدت-سرویس [کپی]

چگونه جلسات مهمان را در اوبونتو 18.04 یا بعد از آن فعال کنیم؟

چگونه غیرفعال کردن لمس کردن صفحه لمسی را از دو بار کلیک در قسمت ویژه آن استفاده کنید

چگونه یک سرویس سیستمی بسته بندی کنیم؟

نحوه فعال و غیرفعال کردن ماژول های php7 در سرور linux 16.4

[upstart] سوال برچسب


چگونه می توان PPA ها را حذف کرد؟

چگونه می توان از یک ترمینال خاموش یا راه اندازی مجدد کرد؟

log cron / crontab کجاست؟

دستور تعیین IP عمومی من؟

چگونه یک دایرکتوری غیر خالی در ترمینال حذف شود؟

چگونه می توانم صفحه خود را ضبط کنم؟

چگونه تصاویر GIF متحرک از یک صفحه نمایش ایجاد کنیم؟

چگونه یک پیوند نرم یا نمادین ایجاد کنیم؟

چگونه می توانم کلید عمومی را از یک کلید خصوصی SSH بازیابی کنم؟