شرح کامل systemd یک کتاب قطور با فونت ریز نیاز دارد. ما اینجا می خواهیم در 3 یا 4 مقاله سریع و چند دقیقه ای خیلی کلی و سریع درخصوص اینکه systemd چه هست و چه کار می کند و پرکاربردترین دستورات و ترفندهای آن مروری داشته باشیم.
اکثر لینوکس ها مثل redhat, fedora, centos, suse, ubuntu, debian و ... امروزه برای بارگذاری و مدیریت سرویس ها و خدمات سیستم عامل از systemd استفاده می کنند. systemd خود با زبان C نوشته شده است و پشتیبان اصلی آن redhat است.
در یک وجه، systemd یک init system است که پس از روشن کردن سیستم و بارگذاری kernel لینوکس، بعنوان اولین پروسس با PID معادل 1 بارگذاری می شود و امکانات و خدمات آن را initialize می کند.
در وجه دیگر یک بسته جامع نرم افزاری از Libraryها، اجزاء Core، Deamonها، Targetها و ابزارهای جانبی (utilities) است و مدیریت سیستم و خدمات آن را از لحظه اول تا خاموش شدن برعهده می گیرد.
از این باب با فلسفه یونیکسی به تعبیر من "یک دکمه یک عملیات" مغایرت دارد و به همین دلیل معرفی و تثبیت حضور آن در لینوکس پرحاشیه و بحث بوده.
سامانه systemd بصورت اختصاصی برای لینوکس طراحی شده و کار می کند و برای سایر یونیکس ها کاربرد ندارد.
به منابعی که systemd مدیریت می کند مثل سرویس ها ، mountها ، سوکت ها ، swap و ... (تصویر ذیل) یونیت می گویند. تنظیمات عملیات این یونیت ها بصورت فایل text در مسیر های /etc/systemd/ و /usr/lib/systemd/ و /run/systemd/ قابل مشاهده و تغییر است. پسوند هر فایل مشخص می کند که از چه نوع یونیتی است. مثلاً httpd.service یعنی یونیت سرویس httpd که systemd باید مدیریت کند.
یونیت های از نوع .target، حاوی تعریف مجموعه ای از یونیت ها هستند که وضعیت بارگذاری سیستم و اینکه چه سرویس هایی باید بارگذاری شوند را مشخص می کنند. یعنی مثلاً graphical.target سرویس هایی که برای یک دسکتاپ با رابط گاربری گرافیکی و ابزارهای مرتبط نیاز است را بارگذاری می کند و emergency.target چیزی را بارگذاری یا حتی mount نمی کند تا از خط فرمان بتوان بصورت خام سیستم را عیب یابی کرد.(مثل مفهوم safe mode در ویندوز). قبلاً به اینها run level می گفتند.
ابزارها و دستورات جانبی systemD مانند systemctl برای مدیریت و تنظیم سرویس ها و journalctl برای بازرسی و مشاهده وقایع ، امکان مدیریت ، بررسی وضعیت و تعامل با تنظیمات و مشخصات یونیت ها را فراهم می کنند.
از معروفترین و پرکاربردترین ابزارهای systemd می توان به busctl برای دیدن و مدیریت D-Bus و journalctl برای بررسی وقایع و لاگ ها و loginctl برای بررسی و مدیریت کاربران لاگین کرده و hostnamectl برای مدیریت اطلاعات hostname و timedatectl برای ساعت و زمان و systemctl، پراستفاده ترین ابزار مدیریتی و نظارتی اصلی برای مدیریت سرویس ها و Deamonها اشاره کرد.
که در قسمت های بعد به این ابزارها و دستورات می پردازیم...