برنامه نویسی

مدیریت خدمات لینوکس با `systemctl` و” systemd “

ما رسیده ایم روز 6 از 30 روز چالش لینوکس ، و موضوع امروز موضوعی است که در هسته اصلی نحوه عملکرد سیستم های لینوکس در پس زمینه قرار دارد: خدمات و مدیریت Daemon با استفاده از systemd وت systemctlبشر

اگر تا به حال فکر کرده اید که چگونه سیستم لینوکس شما خدمات را به صورت خودکار در بوت شروع می کند ، برنامه هایی مانند SSH یا Apache را در حال اجرا نگه می دارد ، یا فرآیندهای پس زمینه را مدیریت می کند – اینگونه کار می کند.

📚 فهرست مطالب

Daemons و خدمات چیست؟

بوها منگوله یک فرآیند پس زمینه است که به طور مداوم اجرا می شود یا توسط رویدادهای خاص ایجاد می شود. این فرایندها:

  • در طول بوت شروع کنید
  • در پس زمینه بی صدا اجرا کنید
  • وظایفی مانند شبکه ، ورود به سیستم ، برنامه ریزی و دسترسی از راه دور را مدیریت کنید

مثالها شامل:

  • sshd – مدیریت دسترسی SSH را مدیریت می کند
  • cron – وظایف برنامه ریزی شده
  • httpd – سرور وب آپاچی
  • docker – سرویس زمان اجرا کانتینر

در لینوکس به این موارد گفته می شود خدمات، و آنها با استفاده از ابزاری به نام کنترل می شوند systemctlبشر

SystemD چیست؟

systemd است سیستم اولیه توسط بیشتر توزیع های مدرن لینوکس استفاده می شود. این مسئول است:

  • بوت کردن سیستم
  • مدیریت فرآیندها و خدمات سیستم
  • رسیدگی به ورود به سیستم ، مونت ، تایمر و موارد دیگر

این سیستم های قدیمی تر را جایگزین کرد در حال حاضر و اکنون در توزیع هایی مانند اوبونتو ، سانتوس ، فدورا ، Rhel و دبیان استاندارد است.

در قلب SystemD است systemctl، ابزار خط فرمان ما برای تعامل با آن استفاده می کنیم.

معرفی SystemCtl

در systemctl ابزار به شما امکان می دهد:

  • خدمات را به صورت دستی شروع یا متوقف کنید
  • خدمات را در بوت فعال یا غیرفعال کنید
  • وضعیت خدمات فعال را بررسی کنید
  • تنظیم مجدد سرویس
  • خدمات تصادف شده یا سوء رفتار را مجدداً راه اندازی کنید

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

مشترک سیستم دستورات

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

  1. بوت سیستم و وضعیت خدمات را بررسی کنید
    وضعیت SystemCtl

  2. یک سرویس خاص را بررسی کنید
    SystemCtl وضعیت SSH

  3. شروع/توقف/راه اندازی مجدد یک سرویس

  4. sudo systemctl شروع nginx

  5. sudo systemctl توقف nginx

  6. sudo systemctl راه اندازی nginx

  7. یک سرویس را در بوت فعال کنید
    sudo systemctl nginx را فعال کنید

  8. یک سرویس را در بوت غیرفعال کنید
    sudo systemctl nginx را غیرفعال می کند

  9. تنظیم مجدد یک سرویس
    sudo systemctl reload nginx

  10. بررسی کنید که آیا یک سرویس فعال است
    nginx با قابلیت IS-SystemCtl

  11. لیست کلیه خدمات فعال
    لیست SystemCtl-Units-نوع = سرویس

در صورت لزوم از SUDO استفاده کنید – بیشتر کارهای مدیریت خدمات به امتیازات بالایی نیاز دارند.

درک واحدها در SystemD

در SystemD ، یک واحد منبعی است که می تواند مدیریت کند. خدمات فقط یک نوع واحد هستند.

توضیحات نوع واحد
.Service :: یک سرویس در حال اجرا یا Daemon
.socket :: یک سوکت ارتباطی
.mount :: یک سیستم فایل نصب شده
.timer :: کار برنامه ریزی شده
.target :: گروهی از خدمات (به عنوان مثال ، multi-user.target)
بیشتر اوقات ، شما با واحدهای خدمات .sservice مانند nginx.service ، sshd.service و غیره کار خواهید کرد.

نمونه های دنیای واقعی
در اینجا نحوه استفاده از SystemCtl در یک سرور زنده آورده شده است:

  1. پس از بروزرسانی پیکربندی ، یک سرور وب را مجدداً راه اندازی کنید:
  2. sudo systemctl راه اندازی مجدد apache2

  3. فایروال را فعال کنید تا به طور خودکار شروع شود:

  4. sudo systemctl ufw را فعال کنید

شرح تصویر

  1. وضعیت Docker را بررسی کنید:
  2. docker وضعیت sudo systemctl

شرح تصویر

  1. یک سرویس بلااستفاده را غیرفعال کنید:
  2. Sudo Systemctl توقف بلوتوث
  3. sudo systemctl بلوتوث را غیرفعال می کند

شرح تصویر

غیرفعال کردن خدمات غیر ضروری می تواند سرعت و امنیت بوت را بهبود بخشد.

خودتان آن را امتحان کنید

در اینجا چند دستور ایمن برای امتحان کردن وجود دارد:

  1. وضعیت sudo systemctl
  2. sudo systemctl لیست-واحدها-نوع = سرویس
  3. sudo systemctl شروع کرون
  4. sudo systemctl stop cron
  5. sudo systemctl راه اندازی مجدد کرون
  6. sudo systemctl کرون را فعال کنید
  7. sudo systemctl غیرفعال CRON شما می توانید CRON را با هر سرویس نصب شده در سیستم خود جایگزین کنید.

چرا این مهم است

  1. مدیریت خدمات یک مسئولیت اصلی در مدیریت سیستم لینوکس و DevOps است.
  2. با SystemCtl ، می توانید:
  3. خدمات بحرانی را با اطمینان انجام دهید
  4. رفتار خودکار در زمان بوت
  5. عیب یابی تصادفات یا خدمات نادرست
  6. سیستم را با غیرفعال کردن Daemons غیرضروری ایمن کنید
  7. به روزرسانی و ثبات سیستم را بهبود بخشید
  8. این که آیا شما روی یک سرور وب کار می کنید ، استفاده از ظروف یا مدیریت زیرساخت های ابری – درک SystemCtl کنترل کامل بر ضربان قلب سیستم را به شما می دهد.

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا