ایجاد سرویس های سفارشی در systemd

از ویکی فارسی اوبونتو
نسخهٔ تاریخ ‏۱۸ آبان ۱۴۰۳، ساعت ۲۳:۲۵ توسط Mahdi net2 (بحث | مشارکت‌ها)
(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)
پرش به: ناوبری، جستجو

systemd


در سیستم عامل گنو/لینوکس، کرنل به تنهایی همه ی فرآیند های سیستم را انجام نمیدهد و بخشی از کارها را اعم از مدیریت سرویس ها، دیمون ها و سایر برنامه ها را به پروسه دیگری به اسم init میدهد.

در دنیای لینوکس سیستم های مختلفی برای init وجود دارد که مهمترین و رایج ترین آنها امروزه systemd است. systemd اولین دیمونی است که در هنگام بوت شدن شروع می شود و آخرین دیمونی است که در حین خاموش شدن پایان می یابد. systemd به عنوان ریشه درخت فرآیند های فضای کاربر عمل می کند. اولین فرآیند (PID 1) نقش ویژه ای در سیستم های یونیکسی دارد.


systemd برای مدیریت بهتر فرآیند های سیستم، هر منبعی را که سیستم میداند چگونه با آن کار کرده و آن را مدیریت کند (اعم از سرویس ها، دیوایس ها و...) به عنوان یک یونیت(unit) تعریف میکند. هر یونیت یک اسم، یک نوع و یک فایل کانفیگ دارد. ۱۲ نوع یونیت وجود دارد: automount, device, mount, path, scope, service, slice, snapshot, socket, swap, target, timer


در این ویکی میخواهم نحوه ایجاد و مدیریت سرویس های سفارشی در سیستم دی را شرح دهم.


هر سرویس شامل یک فایل کانفیگ است که عموما در دایرکتوری etc/systemd/system/ به فرمت service_name>.service> قرار دارد.

به طور مثال برای سرویس sshd فایل مقابل را داریم: etc/systemd/system/sshd.service/