مدیریت سرویسها با systemd؛ start، stop و enable
systemd قلب مدیریت سرویسهای لینوکس است؛ بدانید چه سرویسی فعال است و چطور آن را درست ریاستارت کنید.
آخرین بهروزرسانی: ۲۸ مهر ۱۴۰۵ · زمان مطالعه: حدود 3 دقیقه · سطح: کاربردی
- مدیریت سرویسها با systemd؛ start، stop و enable
- لیست سرویسهای فعال را ببینید
- فایل unit سفارشی بسازید
چرا این موضوع مهم است؟
موضوع Linux یکی از پایههای نگهداری سرور است. رعایت آن باعث پایداری بیشتر، کاهش ریسک امنیتی و صرفهجویی در زمان پشتیبانی میشود.
قبل از شروع، از پیکربندی فعلی و دادههای مهم نسخه پشتیبان بگیرید تا در صورت نیاز بتوانید به وضعیت قبل برگردید.
پیشنیازها
- دسترسی SSH با کاربر root یا کاربر دارای sudo
- Ubuntu 22.04/24.04 یا Debian 12 (سازگاری با توزیعهای مشابه)
- نسخه پشتیبان از فایلها و دیتابیسهای مهم
راهنمای گامبهگام
گام 1 — لیست سرویسهای فعال را ببینید
لیست سرویسهای فعال را ببینید. پس از اجرا، وضعیت سرویس و لاگها را کنترل کنید؛ تغییر بدون بررسی میتواند خطای پنهان ایجاد کند.
گام 2 — وضعیت یک سرویس را بررسی کنید
وضعیت یک سرویس را بررسی کنید. اگر روی چند سرور کار میکنید، این مورد را یکبار روی محیط تست اجرا و سپس روی تولید اعمال کنید.
گام 3 — لاگ سرویس را با journalctl بخوانید
لاگ سرویس را با journalctl بخوانید. مقدارهای نمونه را با اطلاعات واقعی سرور خود جایگزین کنید و از اجرای دستور با مقادیر پیشفرض پرهیز کنید.
گام 4 — سرویس را ریاستارت کنید
سرویس را ریاستارت کنید. برای اطمینان، نتیجه را از یک مسیر دوم (مرورگر، کلاینت یا ابزار مانیتورینگ) هم بررسی کنید.
گام 5 — سرویس را برای بوت فعال کنید
سرویس را برای بوت فعال کنید. این کار را در بازه کمترافیک انجام دهید و در صورت نیاز کاربران را از قبل مطلع کنید.
گام 6 — فایل unit سفارشی بسازید
فایل unit سفارشی بسازید. این مرحله را با دقت انجام دهید و خروجی دستور را بررسی کنید تا از اعمال درست تغییرات مطمئن شوید.
نمونه دستورها
systemctl --type=service --state=running
systemctl status nginx
journalctl -u nginx -n 50 --no-pager
sudo systemctl enable --now nginxنکات امنیتی و بهینهسازی
- رمزها و کلیدها را در فایلهای محافظتشده نگه دارید و هرگز در کد یا مخزن عمومی قرار ندهید.
- لاگها را پایش کنید تا رفتار غیرعادی زودتر شناسایی شود.
- تغییرات را مستند کنید تا در آینده یا هنگام تحویل به تیم دیگر قابل پیگیری باشد.
خطاهای رایج و راهحل
- خطای Permission denied معمولاً به مالکیت یا مجوز فایل مربوط است؛ chmod -R 777 راهحل نیست.
- قبل از بازگردانی بکاپ، مطمئن شوید نسخه بکاپ با نسخه فعلی سازگار است.
- خطای Permission denied معمولاً به مالکیت یا مجوز فایل مربوط است؛ chmod -R 777 راهحل نیست.
سؤالات متداول
تفاوت enable و start چیست؟
start سرویس را همین حالا اجرا میکند؛ enable آن را برای اجرای خودکار در بوت ثبت میکند.
چرا سرویس مدام restart میشود؟
معمولاً خطای پیکربندی یا کمبود منابع است؛ journalctl -u SERVICE دلیل را نشان میدهد.
میلاد سرور پلنهای اقتصادی سرور مجازی ایران و سرور مجازی آلمان را با آیپی اختصاصی و قیمت شفاف ارائه میکند. برای مقایسه همه کشورها فهرست کامل سرورهای بینالملل را ببینید.
جمعبندی
این آموزش را یکبار روی محیط تست تمرین کنید تا در تولید با اطمینان بیشتری اجرا شود.