آموزش Start, Stop, Restart سرویسها در سرور لینوکس
در سرور مجازی لینوکس، systemd به عنوان سیستم اولیه عمل نموده و فرآیندهای بکگراند را که همه چیز را در حال اجرا نگه میدارد، هماهنگ میکند. این فرآیندها که services نامیده میشوند، وظایف مهمی مانند سرویسدهی وب، دیتابیسها و فایروالها را انجام میدهند. systemd مسئول استارت، توقف و مدیریت این سرویسها است.
systemctl ابزار خط فرمان شما برای مدیریت سرویسها در VPS لینوکس برای start، stop، restart، enable و disable کردن سرویسها برای کنترل متمرکز و مدیریت کارآمد منابع است.
در ادامه سینتکس اصلی systemctl آمده است:
sudo systemctl [command] [service_name]
برای مدیریت سرویسهای لینوکس، میتوانید از دستورات زیر برای start، stop و restart سرویسها استفاده کنید:
systemctl start [service-name]
systemctl stop [service-name]
systemctl restart [service-name]
توجه کنید که [service-name] را در دستورات systemctl با سرویس واقعی که میخواهید مدیریت کنید جایگزین نمائید.
پیش نیازهای استفاده از systemctl برای start، stop، restart سرویسها
گزینههای زیر را در نظر گرفته و ادامه دهید.
- سروری که VPS لینوکس را اجرا میکند.
- یک کاربر non-root با امتیازات sudo
- دسترسی به ترمینال یا خط فرمان
مدیریت سرویس در سرور لینوکس با استفاده از systemctl
systemctl روشی مدرن برای مدیریت سرویسها در سرور لینوکس با استفاده از systems است.
ویژگیهای بیشتری نسبت به فرمان service قدیمیتر ارائه میدهد که هنوز برای سازگاری با سیستمهای قدیمی موجود است.
بیایید شروع کنیم به بررسی نحوه start، stop و restart سرویس ها در سرور لینوکس با استفاده از دستور systemctl.
ابتدا میتوانید از دستور زیر برای فهرست کردن همه سرویسها و مشاهده سرویسهای موجود در سیستم لینوکس خود استفاده کنید:
systemctl list-unit-files --type service -all
هنگامی که نام دقیق سرویس را به خاطر نمیآورید هم این کار مفید است.
این دستور لیستی از تمام سرویسهای سیستم را نشان میدهد که سرویس فعال با + و سرویس غیرفعال با - نشان داده میشود.
استفاده از systemctl list-units با دستور grep به شما امکان میدهد فقط سرویسهای در حال اجرا روی سیستم خود را فیلتر کرده و ببینید:
sudo systemctl | grep running
برای بررسی وضعیت یک سرویس خاص، دستور اصلی در اینجا آمده است:
systemctl status [service_name]
راه اندازی (Start) سرویس در لینوکس
برای راه اندازی یک سرویس در لینوکس دستور زیر را اجرا کنید:
sudo systemctl start [service-name]
به عنوان مثال، میتوانید بررسی کنید که آیا سرویس MySQL فعال است یا خیر و با اجرای آن شروع به کار کنید:
sudo systemctl status mysql
sudo systemctl start mysql
برای فعال کردن MySQL در هنگام بوت شدن سیستم میتوان دستور زیر را اجرا کرد:
sudo systemctl enable mysql
توقف(Stop) سرویس در لینوکس
سرویسهای فعال را میتوان با استفاده از دستور زیر متوقف کرد:
sudo systemctl stop [service-name]
به عنوان مثال، از دستور زیر برای متوقف کردن MySQL استفاده کنید:
sudo systemctl stop mysql
برای جلوگیری از راه اندازی سرویس در هنگام بوت و غیر فعال نگه داشتن آن، تایپ کنید:
sudo systemctl disable mysql
ریستارت (Restart) سرویس در لینوکس
برای ریستارت سرویس در لینوکس، دستور زیر را اجرا کنید:
sudo systemctl restart [service-name]
برای مثال، اجرای دستور زیر MySQL را راه اندازی مجدد میکند:
sudo systemctl restart mysql
خرید وی پی اس در پنج موقعیت جغرافیایی ایران، ترکیه، هلند، آلمان و آمریکا با قابلیت تحویل آنی در پارسدو فراهم است.
ریلود (Reload) سرویس در لینوکس
بارگذاری مجدد(ریلود) یک سرویس پیکربندی آن را در حین اجرا تازه میکند، برخلاف ریستارت که به طور کامل آن را متوقف و دوباره start میکند.
برای بارگذاری مجدد یک سرویس از دستور زیر استفاده کنید:
sudo systemctl reload [service-name]
به عنوان مثال، برای بارگذاری مجدد(ریلود) MySQL، تایپ کنید:
sudo systemctl reload mysql
سپس میتوانید از دستور زیر برای بررسی فعال بودن سرویس استفاده کنید:
sudo systemctl status mysql
از آنجایی که اشتباهات تایپی می تواند منجر به رفتار غیرمنتظره شود، همیشه نام سرویس را دوباره بررسی کنید.
تفاوت بین Restart و Reload یک سرویس چیست؟
ریستارت (Restart) یک سرویس را به طور کامل متوقف کرده و سپس آن را دوباره راه اندازی میکند، در حالی که در ریلود (Reload) یک سرویس، فایلهای پیکربندی آن را بدون توقف سرویس، آپدیت (تازه) میشود.
از ریستارت برای اعمال تغییرات عمده یا عیبیابی و ریلود برای بهروزرسانیهای پیکربندی در حین اجرای سرویس استفاده کنید.
چرا مدیریت سرویس VPS لینوکس اهمیت دارد؟
مدیریت سرویس در VPS به چند دلیل ضروری است:
- حفظ ثبات: یک سیستم سالم متکی به سرویسهایی است که بدون مشکل اجرا میشوند. ریستارت(Restart) یک سرویس خراب اغلب میتواند همه چیز را سریع به مسیر اصلی خود بازگرداند.
- مشکلات عیب یابی(Troubleshooting): اگر با رفتار غیرمنتظرهای مواجه شدید، توقف (Stop) یک سرویس می تواند به جداسازی مشکل کمک کند.
- استقرار و بهروزرسانیها: هنگام استقرار برنامههای جدید یا بهروزرسانیها در سرویسهای موجود، ریستارت (Restart) آنها از اعمال تغییرات اطمینان حاصل میکند.
- مدیریت منابع: توقف (Stop) سرویسهای استفاده نشده منابع ارزشمند سیستم مانند حافظه و CPU را آزاد میکند.
چرا با وجود استفاده از systemctl start، سرویس راه اندازی نمیشود؟
دلایل مختلفی میتواند وجود داشته باشد. وضعیت سرویس را با systemctl status بررسی نمائید تا هرگونه پیام خطا را مشاهده کنید. همچنین می توانید برای سرنخ به لاگهای سرویس نگاه کنید.
چگونه یک سرویس را فعال یا غیرفعال کنیم تا به طور خودکار در هنگام بوت شروع شود؟
از sudo systemctl enable
نتیجه
systemctl به شما این امکان را میدهد که به طور موثر سرویسها را در سرور لینوکس خود مدیریت کنید. با تسلط بر این دستورات، کنترل عملکرد سیستم خود را به دست آورده و از عملکرد روان، تخصیص کارآمد منابع و فرآیند عیب یابی ساده مطمئن میشوید. به یاد داشته باشید، تمرین مداوم و بررسی گزینههای systemctl اضافی، مهارتهای مدیریت سرور شما را بیشتر تقویت میکند.