گروه کاربران لینوکس دانشگاه شهید مدنی آذربایجان

لاگ دانشگاه آذربایجان :: Azarbaijan University Linux User Group

گروه کاربران لینوکس دانشگاه شهید مدنی آذربایجان

لاگ دانشگاه آذربایجان :: Azarbaijan University Linux User Group

دستور systemctl

مدیریت سرویس‌ها توسط  systemctl                       



systemd    یک سیستم  init   است که در برخی از لینوکس‌ها برای کنترل و مدیریت فضای کاری کاربر و همچنین مدیریت سرویس‌ها و پردازش‌ها مورد استفاده قرار می‌گیرد.

از سال 2015 بسیاری از توزیع‌های مطرح لینوکس مانند دبیان، centos و غیره systemD را به عنوان سیستم init خود قرار دادند.

حال کاربران لینوکسی برای استفاده از systemD در خط فرمان از systemctl استفاده کرده که در این مطلب به آموزش کار با systemctl می پردازیم.


systemctl همانند سایر دستورات لینوکسی دارای پارامترهای گوناگونی است که در ادامه به نوع ساختار وارد کردن دستور systemctl و توضیح انواع پارامترهای آن می‌پردازیم.


ساختار دستور systemctl

systemctl   [Parameter]   application.suffix


در بخش parameter ، شما نوع فعاللیت یک سرویس را مشخص می‌کنید مانند start یا stop

در بخش application ، نام ابزار ، اپلیکیشن و یا سرویس مورد نظر را وارد می‌نماییدمانند Apache یا mysql

اگر شما یک کاربر غیر ریشه هستید لطفا روت شوید و یا قبل از دستور sudo بگذارید تا دستور با دسترسی ریشه اجرا شود در غیر این صورت ممکن که دستور شما عمل نکند.

و در انتها در بخش suffix ، یونیت مورد نظر جهت کنترل را وارد می‌کنید مانند Service یا socket


استارت سرویس با  systemctl


برای استارت یک سرویس در لینوکس از پارامتر start استفاده می‌شود.

ساختار دستور

systemctl   start   application.service


همانطور که ملاحظه می‌کنید پس از دستور systemctl ، پارامتر start نوشته شده و در انتها نام سرویس نوشته می‌شود


systemctl  start   nginx.service

systemctl    start   nginx

  

نکته : برای استارت کردن و یا عملیات دیگر بر روی سرویس نیازی به وارد کردن اجباری کلمه service در انتهای نام سرویس مورد نظر نیست و همانطور که در مثال بالا ملاحظه می‌نمایید ، هر دو دستور به استارت کردن سرویس nginx می‌پردازند. اما در این آموزش ما تمامی مثال‌ها را به دو شکل مختلف ذکر کرده‌ایم.


- لازم به ذکر است که اگر شما نام سرویسی را که می‌خواهید استفاده کنید را نمی‌دانید، می‌توانید با نوشتن فقط یکی دو حرف اول آن سرویس و سپس زدن دو بار پشت سر هم کلید TAB نام آن را کامل کنید.


- اگر شما یک کاربر غیر ریشه هستید لطفا روت شوید و یا قبل از دستور sudo بگذارید تا دستور با دسترسی ریشه اجرا شود در غیر این صورت ممکن که دستور شما عمل نکند.


استاپ سرویس با Systemctl


برای استاپ کردن سرویس یک سرویس از پارامتر stop استفاده می‌شود.

ساختار دستور

systemctl   stop   application.service

مثال استاپ کردن سرویس با systemctl

systemctl  stop  nginx.service
systemctl  stop  nginx

راه اندازی مجدد سرویس با systemctl


برای راه اندازی کامل مجدد یک سرویس از پارامتر restart استفاده می‌شود.

ساختار دستور

systemctl restart application.service

مثال ریستارت کردن سرویس با systemctl

systemctl restart   nginx.service

systemctl restart  nginx

ریلود سرویس با systemctl


ریلود کردن سرویس با پارامتر reload انجام می‌گیرد.


ساختار دستور

systemctl reload application.service

مثال ریلود کردن سرویس با systemctl

systemctl reload nginx.service

systemctl reload nginx

نکته : تفاوت reload و Restart در این است که restart به کل سرویس را استاپ کرده و مجدد استارت می‌کند ، اما reload تنها فایل configuration یا همان پیکربندی را فراخوانی کرده و سرویس به فعالیت خود ادامه می‌دهد. در مجموع ریلود سریعتر از ریستارت انجام خواهد پذیرفت. اگر نمی‌دانید در هنگام بارگذاری مجدد یک سرویس از reload و یا restart باید استفاده کرد ، می‌توانید از پارامتر 

reload-or-restart استفاده نمایید.


مثال reload-or-restart

systemctl  reload-or-restart   nginx.service


فعال سازی سرویس در استارت آپ با systemctl


برای فعال سازی یک سرویس در استارت آپ و راه اندازی خودکار یک سرویس پس از هر بار ریبوت باید از پارامتر enable استفاده نمایید.

ساختار دستور

systemctl  enable   application.service


مثال دستور فعال سازی یک سرویس در systemctl

systemctl enable nginx.service

systemctl enable nginx

با وارد کردن دستور بالا یک دستور shortcut در شاخه systemd ایجاد شده و پس از هر بار ریبوت systemd تمام shortcut های موجود در شاخهsystemd را استارت خواهد کرد.


غیر فعال سازی سرویس در استارت آپ با systemctl


برعکس دستور enable برای غیرفعال سازی یک سرویس برای استارت نشدن پس از ریبوت از پارامتر disable استفاده خواهد شد.

ساختار دستور

systemctl disable application.service

مثال غیرفعال سازی سرویس‌ پس ریبوت با systemctl

systemctl disable nginx.service
systemctl disable nginx

دریافت وضعیت یک سرویس با systemctl


برای دریافت وضعیت یک سرویس از پارامتر status می‌توان استفاده کرد.


ساختار دستور

systemctl status application.service

مثال دریافت وضعیت یک سرویس با systemctl

systemctl   status   nginx.service

systemctl   status   nginx

چک کردن وضعیت استارت بودن سرویس


برای چک کردن وضعیت حال حاضر سرویس در حالت استارت یا استاپ بودن آن از پارامتر is-active استفاده می‌شود.


ساختار دستور

systemctl  is-active application.service

مثال چک کردن وضعیت سرویس با systemctl

systemctl   is-active   nginx.service
systemstl    is-active   nginx

چک کردن وضعیت فعال و یا غیرفعال بودن سرویس


برای چک کردن وضعیت enable و یا disable بودن سرویس که مربوط به استارت خودکار سرویس پس از ریبوت خواهد شد از پارامتر 

is-enable استفاده می‌شود.


ساختار دستور

systemctl  is-enable   application.service

مثال چک کردن وضعیت فعالیت یک سرویس با systemctl

systemctl    is-enable   apache2.service
systemctl   is-enable   apache2

نمایش لیست تمام سرویس‌های اکتیو systemD


برای دیدن لیستی از تمام سرویس‌های در حال اجرا از پارامتر list-units استفاده می‌شود که به شکل زیر باید وارد شود.

systemctl list-units

حال اگر در نظر دارید لیست کاملتر از تمام سرویس‌ها به همراه جزئیات بیشتری را دریافت کنید می‌توان از دستور زیر استفاده کرد.

systemctl list-units --all

اگر قصد نمایش لیستی از تمام یونیت‌های اکتیو نشده دارید از دستور زیر استفاده نمایید.

systemctl list-units --all --state=inactive



                                                  

نوشته شده توسط : شیوا اسمعیل پور  941831205


منابع: https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units

http://linuxihaa.ir/systemctl/


نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد