مدیریت سرویس Systemd در لینوکس

در این آموزش، قصد داریم نحوه مدیریت سرویس Systemd را در لینوکس شرح دهیم.
در حال حاضر Systemd بطور پیشفرض در اکثر توزیعهای لینوکسی اعم از فدورا، ردهت، اوبونتو، دبیان، Open SUSE و آرچ وجود دارد. فرمان systemctl امکان دسترسی به اطلاعات مربوط به وضعیت systemd و کنترل سرویسهای در حال اجرا را مهیا میسازد.
توجه: برای تغییر پیکربندی سیستم در توزیع لینوکسی اوبونتو میبایست فرمانها را با پیشوند sudo اجرا نمایید. در توزیعهای دیگر لینوکسی نیز نیاز خواهید داشت تا با کمک فرمان su به کاربر root تبدیل شوید.
برای پی بردن به آن که توزیع لینوکسی شما از systemd بهره میبرد یا خیر، کافیست تا پنجره ترمینال را گشوده و فرمان زیر را اجرا نمایید. اگر systemd نصب باشد شماره نسخه systemd نمایش داده خواهد شد.
1 |
#systemd –version |
تحلیل فرآیند بوت
فرمان systemd-analyze امکان نمایش اطلاعات مربوط به فرآیند بوت را مهیا میسازد. این اطلاعات میتواند شامل میزان زمانی و سرویسها و سایر فرآیندهایی که به فرآیند بوت افزوده شدهاند، باشد.
برای مشاهده اطلاعات مربوط به فرآیند startup میتوان فرمان زیر را اجرا نمود:
1 |
#systemd-analyze |
برای مشاهده میزان فرآیند برای شروع نیز میتوان از فرمان زیر بهره جست:
1 |
#systemd-analyze blame |
مشاهده Unitها
systemd از unitهای سرویسدهنده (.service)، نقاط دسترسی (.mount)، دستگاهها (.device) و سوکتها (.socket) استفاده میکند. فرمان systemctl انواع unitها را مدیریت خواهد کرد.
برای مشاهده تمامی فایلهای unit قابل دسترس بر روی سیستم از فرمان زیر استفاده میشود:
1 |
#systemctl list-unit-files |
برای لیست کردن تمامی unitهای در حال اجرا فرمان زیر بکار گرفته میشود:
1 |
#systemctl list-units |
و برای نمایش unitهای failed شده:
1 |
#systemctl –failed |
مدیریت سرویس Systemd
برای مشاهده سرویسهای فعال و غیرفعال میبایست فرمان systemctl را بصورت زیر لیست نمایید:
1 |
#systemctl list-unit-files –type=service |
فرمان systemctl امکان آغاز نمودن، متوقفسازی و ریستارت یک سرویس را مهیا میسازد. همچنین به کمک آن قادر خواهید بود تا یک سرویس را برای reload پیکربندی نمایید.
سایر وضعیتهای فرمان systemctl نیز از قرار زیر است:
1 2 3 4 5 6 7 8 9 |
#systemctl start name.service #systemctl stop name.service #systemctl restart name.service #systemctl reload name.service #systemctl status name.service |
استفاده از فرمان systemctl enable بطور اتوماتیک یک سرویس و یا یک unit دیگر را در زمان بالا آمدن آغاز مینماید.
فرمان systemctl disable سرویسی را غیرفعال نموده و یا متوقف میسازد.
1 2 3 |
#systemctl enable name.service #systemctl disable name.service |

شما قادر خواهید بود سرویس یا یک unit را از زمان شروع mask نمایید.
1 2 3 |
#systemctl mask name.service #systemctl unmask name.service |

منبع: لینوکسسیزن نوشته «فرشید نوتاش حقیقت»