این دوره برای کسانی طراحی شده است که میخواهند به طور عمیق با سرویس مدیریت سیستم Systemd آشنا شوند و توانایی پیکربندی و مدیریت این سرویس را به صورت پیشرفته در سیستمهای لینوکس بدست آورند. Systemd به عنوان یک سیستم init مدرن و ابزار مدیریت سرویسها در بسیاری از توزیعهای لینوکس، مانند Ubuntu, CentOS, Fedora, و Debian به کار میرود.
بخش 1. مقدمهای بر Systemd
فصل 1. تاریخچه و نیاز به Systemd
- مروری بر تاریخچه سیستمهای init در لینوکس
- معرفی مشکلات و محدودیتهای SysVinit و Upstart
- دلایل توسعه Systemd و اهداف آن
فصل 2. مقایسه Systemd با سایر سیستمهای init
- بررسی عملکرد SysVinit، Upstart و Systemd
- مقایسه سرعت راهاندازی (Boot Time)
- مقایسه مدیریت وابستگیهای سرویسها
فصل 3. معماری و طراحی Systemd
- ساختار کلی و نحوه عملکرد Systemd
- مفهوم Unit و اهمیت آن در Systemd
- نحوه مدیریت فرآیندها و سرویسها توسط Systemd
فصل 4. ویژگیها و مزایای Systemd
- مدیریت بهتر وابستگیها (Dependency Management)
- بهینهسازی زمان بوت (Parallel Booting)
- مدیریت لاگها با journalctl
- پشتیبانی از Sockets و Timers
- کنترل سطح دسترسی و امنیت سرویسها
فصل 5. معرفی اجزای اصلی Systemd
- Unit Files و انواع آن (Service, Socket, Target, Timer و …)
- Systemctl و دستورات پرکاربرد آن
- Journald برای مدیریت لاگها و رخدادهای سیستم
- Systemd-analyze برای تحلیل عملکرد و بهینهسازی
بخش 2. نصب و پیکربندی اولیه Systemd
فصل 1. آشنایی با نسخههای مختلف Systemd
- بررسی نسخههای مختلف Systemd در توزیعهای لینوکس
- نحوه بررسی نسخه Systemd نصبشده با
systemctl --version
فصل 2. نصب Systemd بر روی سیستمهای مختلف
- بررسی پیشفرض بودن Systemd در توزیعهای مختلف
- نصب Systemd در Debian و Ubuntu با
apt - نصب Systemd در CentOS, RHEL و Fedora با
dnfیاyum - نصب Systemd در Arch Linux با
pacman - فعالسازی Systemd در توزیعهایی که از آن بهطور پیشفرض استفاده نمیکنند
فصل 3. فعالسازی و غیرفعال کردن Systemd به عنوان سیستم init
- نحوه تغییر سیستم init به Systemd در سیستمهایی که از SysVinit یا Upstart استفاده میکنند
- بررسی فرآیند جایگزینی init در سیستمهای لینوکس
فصل 4. پیکربندی پیشفرضهای Systemd
- تنظیمات پیشفرض Systemd در مسیر
/etc/systemd/system.conf - بررسی پارامترهای مهم مانند
DefaultTimeoutStartSec،DefaultTimeoutStopSecوLogLevel - تنظیم و تغییر مقدار لاگینگ برای نظارت بر عملکرد
فصل 5. مدیریت مسیرهای اصلی و فایلهای پیکربندی Systemd
- بررسی ساختار فایلها و دایرکتوریهای مهم مانند:
/etc/systemd/برای تنظیمات کاربر/usr/lib/systemd/برای unitهای پیشفرض/var/log/journal/برای نگهداری لاگها
فصل 6. تنظیمات اولیه و راهاندازی مجدد سیستم پس از نصب Systemd
- بررسی سرویسهای پیشفرض فعالشده پس از نصب
- مدیریت boot targetهای اولیه مانند
multi-user.targetوgraphical.target - نحوه تست و عیبیابی مشکلات اولیه Systemd
بخش 3. مفاهیم Unit Files در Systemd
فصل 1. مقدمهای بر Unit Files در Systemd
- تعریف و نقش Unit Files در مدیریت سرویسها
- تفاوت Unit Files با اسکریپتهای init در SysVinit و Upstart
- نحوه ذخیره و مکانهای پیشفرض Unit Files در سیستم
فصل 2. انواع Unit Files در Systemd و کاربردهای آنها
- معرفی انواع یونیتها و نقش آنها در مدیریت سیستم
- بررسی انواع مهم:
- Service Unit: مدیریت سرویسهای پسزمینه
- Socket Unit: مدیریت ارتباطات شبکهای و IPC
- Target Unit: گروهبندی و کنترل وابستگیها
- Device Unit: مدیریت دستگاههای سختافزاری
- Mount & Automount Unit: مدیریت نقاط اتصال فایلسیستم
- Swap Unit: کنترل حافظه swap
- Timer Unit: جایگزین cron برای زمانبندی وظایف
- Path Unit: نظارت بر تغییرات فایلها و دایرکتوریها
فصل 3. ساختار و نحوه نوشتن Unit Files
- معرفی بخشهای اصلی Unit Files:
[Unit](تعریف کلی، وابستگیها، توضیحات)[Service](تنظیمات مربوط به اجرای سرویسها)[Install](پیکربندی اجرای خودکار و هدفهای مربوطه)
- بررسی گزینههای کلیدی در
[Unit]مانند:Description,After,Before,Requires,Wants,Conflicts
- بررسی تنظیمات مهم در
[Service]مانند:ExecStart,ExecStop,Restart,RestartSec,Type,User,Group,Environment
- بررسی
[Install]و تعیینWantedByوAliasبرای مدیریت اجرا
فصل 4. نحوه ایجاد و ویرایش Unit Files سفارشی
- ایجاد یک فایل سرویس ساده برای اجرای یک برنامه سفارشی
- استفاده از
systemctl edit --fullبرای ویرایش یونیتها - ذخیره و بارگذاری مجدد Systemd پس از ایجاد تغییرات
- بررسی دستورات
systemctl daemon-reloadوsystemctl restart
فصل 5. مدیریت Unit Files در Systemd
- نحوه فعالسازی و غیرفعال کردن Unit Files
- بررسی وضعیت سرویسها با
systemctl status - نمایش اطلاعات یک Unit با
systemctl show - حذف یا غیرفعال کردن دائمی Unit Files
فصل 6. ایجاد Unit Files برای اجرای اسکریپتهای Bash
- اجرای یک اسکریپت در زمان بوت با Systemd
- مثال عملی از اجرای یک اسکریپت برای نظارت بر سرویسها
فصل 7. بررسی نمونههای واقعی از Unit Files در سرویسهای معروف
- بررسی فایلهای unit برای سرویسهای Nginx, PostgreSQL, Docker
- تغییر و سفارشیسازی Unit Files برای تنظیمات خاص
بخش 4. مدیریت سرویسها با Systemd
فصل 1. مدیریت پایهای سرویسها با Systemd
- مفهوم سرویس (Service) در Systemd و تفاوت آن با سایر Unitها
- بررسی ساختار فایلهای Service Unit
- راهاندازی و توقف سرویسها با دستورات
systemctl start/stop - بررسی وضعیت سرویسها با
systemctl status - مشاهده فرآیندهای مرتبط با یک سرویس و اطلاعات آن
فصل 2. تنظیم سرویسها برای اجرا در زمان بوت (Startup Management)
- بررسی تنظیمات پیشفرض اجرای سرویسها در زمان بوت
- فعالسازی و غیرفعال کردن سرویسها با
systemctl enable/disable - راهاندازی مجدد و بارگذاری مجدد سرویسها با
systemctl restart/reload - تفاوت
restartوreloadو زمان استفاده از هرکدام - اجرای دستی یک سرویس تنها یک بار بدون تغییر در بوت شدن با
systemctl start
فصل 3. مدیریت وضعیت سرویسها و وابستگیها
- نمایش سرویسهای فعال و غیرفعال با
systemctl list-units --type=service - بررسی وابستگیهای سرویسها با
systemctl list-dependencies - مشاهده ترتیب اجرای سرویسها در زمان بوت با
systemd-analyze blame - نمایش وابستگیهای بحرانی سیستم با
systemd-analyze critical-chain - استفاده از
WantedByوRequiredByدر فایلهای unit برای تنظیم وابستگیها
فصل 4. نظارت بر لاگها و رویدادهای Systemd
- معرفی
journalctlو نحوه استفاده از آن برای نظارت بر لاگها - مشاهده لاگهای یک سرویس خاص:
journalctl -u <service> - بررسی لاگهای اخیر یک سرویس و نمایش خروجی زنده:
journalctl -u <service> -f - نمایش فقط لاگهای خطا و هشدار برای یک سرویس:
journalctl -p err -u <service> - فیلتر کردن لاگها براساس بازه زمانی
فصل 5. بررسی عملکرد سرویسها و تحلیل زمان بوت
- استفاده از
systemd-analyzeبرای بررسی زمان بوت - نمایش زمان تأخیر در اجرای سرویسها و بهینهسازی آن
- تشخیص مشکلات تأخیر در بوت شدن سرویسها با
systemd-analyze blame - بررسی سرویسهایی که باعث تأخیر در راهاندازی سیستم میشوند
فصل 6. مدیریت سرویسها در صورت وقوع خطا
- بررسی Restart Policies و انواع آن (
Restart=always,Restart=on-failure,Restart=on-abnormal) - تعیین میزان تلاش برای راهاندازی مجدد سرویس پس از خطا (
StartLimitBurst,StartLimitIntervalSec) - بررسی علت از کار افتادن سرویسها با
systemctl status <service> - عیبیابی و بررسی جزئیات بیشتر با
journalctlوdmesg
فصل 7. ایجاد و سفارشیسازی سرویسها
- ایجاد یک فایل Service Unit سفارشی در
/etc/systemd/system/ - تعریف دستورات
ExecStart,ExecStop,Restart, وWorkingDirectory - افزودن پارامترهای امنیتی و محدودیت منابع برای سرویس
- اعمال تغییرات و بارگذاری مجدد تنظیمات با
systemctl daemon-reload - بررسی ساختار دقیق و نحوهی نوشتن فایلهای unit
فصل 8. استفاده از Systemd برای مدیریت سرویسهای حیاتی
- بررسی سرویسهای مهم سیستم و نحوه مدیریت آنها
- نظارت بر سرویسهای سیستمی مانند
sshd,nginx,mysql,docker - استفاده از systemd برای مدیریت سرویسهای حیاتی در سرورهای تولیدی
- راهکارهای جلوگیری از قطع شدن سرویسهای مهم و افزایش پایداری
خدمات شبکه فراز نتورک | پیشرو در ارائه خدمات دیتاسنتری و کلود

نقد و بررسی وجود ندارد.