- مقدمه
- ساختار Systemd Units
- ساختار یک Unit Simple
- مراحل نوشتن یک Unit سفارشی
- مرحله ۱: ایجاد فایل Unit
- مرحله ۲: تنظیم بخش [Unit]
- مرحله ۳: تنظیم بخش [Service]
- مرحله ۴: تنظیم بخش [Install]
- مرحله ۵: بارگذاری مجدد Systemd
- مرحله ۶: شروع و فعالسازی سرویس
- مرحله ۷: بررسی وضعیت سرویس
- نتیجهگیری
مقدمه
systemd یک سیستم مدیریت سرویس و سیستم برای لینوکس است که به عنوان جایگزینی برای SysVinit و Upstart توسعه یافته است. systemd به مدیریت واحدهای مختلف مانند سرویسها، سوکتها و هدفها میپردازد. این مقاله به بررسی ساختار systemd units و نحوه نوشتن یک unit سفارشی میپردازد. از آنجا که ساختار systemd پیچیده است، در این مقاله مراحل را بهطور واضح و فنی تشریح میکنیم.
ساختار Systemd Units
یک unit در systemd مجموعهای از پیکربندیها است که نحوه مدیریت یک سرویس، سوکت، هدف یا هر عنصر دیگر سیستم را تعریف میکند. قالب یک فایل unit معمولاً در یکی از دایرکتوریهای زیر قرار دارد:
/etc/systemd/system/(واحدهای سفارشی)/lib/systemd/system/(واحدهای سیستمی)
فایلهای unit معمولاً با پسوند .service، .socket، .target و غیره ذخیره میشوند. هر فایل شامل بخشهای مختلفی از جمله [Unit]، [Service] و [Install] است.
ساختار یک Unit Simple
نمونهای از ساختار یک فایل unit ساده بهصورت زیر است:
[Unit]
Description=Sample Service
[Service]
ExecStart=/usr/bin/sample
[Install]
WantedBy=multi-user.target
مراحل نوشتن یک Unit سفارشی
مرحله ۱: ایجاد فایل Unit
برای نوشتن یک unit سفارشی، فایل جدیدی ایجاد کنید. به عنوان مثال، ما یک سرویس به نام sample.service ایجاد خواهیم کرد. برای این کار، ابتدا به دایرکتوری /etc/systemd/system/ میرویم و فایل را ایجاد میکنیم.
sudo nano /etc/systemd/system/sample.service
مرحله ۲: تنظیم بخش [Unit]
در این بخش توصیفاتی از unit خود را وارد کنید. به عنوان مثال:
[Unit]
Description=Sample Service
After=network.target
بخش After نشاندهنده این است که سرویس باید پس از فعال بودن سرویس شبکه راهاندازی شود.
مرحله ۳: تنظیم بخش [Service]
در این بخش، دستورات اجرایی سرویس را تعریف کنید. به عنوان مثال:
[Service]
ExecStart=/usr/bin/sample
Restart=on-failure
User=nobody
ExecStartمکان اجرای برنامه را مشخص میکند.Restartسیاستهای راهاندازی مجدد را تعریف میکند.Userکاربری را که سرویس تحت آن اجرا میشود مشخص میکند.
مرحله ۴: تنظیم بخش [Install]
این بخش تعیین میکند که چگونه unit باید نصب شود. برای مثال:
[Install]
WantedBy=multi-user.target
این تنظیمات مشخص میکند که سرویس در حالت چندکاربره فعال شود.
مرحله ۵: بارگذاری مجدد Systemd
پس از ایجاد و ویرایش فایل unit، برای بارگذاری مجدد systemd و شناسایی تغییرات، از دستور زیر استفاده کنید:
sudo systemctl daemon-reload
مرحله ۶: شروع و فعالسازی سرویس
برای شروع سرویس و فعالسازی آن در زمان راهاندازی سیستم، از دستورات زیر استفاده کنید:
sudo systemctl start sample.service
sudo systemctl enable sample.service
مرحله ۷: بررسی وضعیت سرویس
برای بررسی وضعیت سرویس، میتوانیم از دستور زیر استفاده کنیم:
sudo systemctl status sample.service
این دستور وضعیت فعلی سرویس را به همراه لاگها نمایش میدهد.
نتیجهگیری
در این مقاله ساختار systemd units و مراحل نوشتن یک unit سفارشی بهطور کامل توضیح داده شد. مراحل کلیدی شامل ایجاد فایل unit، تنظیم بخشهای مختلف [Unit]، [Service] و [Install]، بارگذاری مجدد systemd، شروع و فعالسازی سرویس، و بررسی وضعیت آن بود. این مراحل به مدیران سرور لینوکس و توسعهدهندگان حرفهای کمک میکند تا بهطور موثری سرویسهای خود را مدیریت کنند.
