Skip to content
This repository has been archived by the owner on Aug 24, 2024. It is now read-only.

Latest commit

 

History

History
29 lines (18 loc) · 4.5 KB

systemctl-and-service.md

File metadata and controls

29 lines (18 loc) · 4.5 KB
description
از این دو دستور برای مدیریت سرویس‌های سیستم استفاده می‌کنیم.

systemctl & service

خب تا الان نسبتا چیزای زیادی یاد گرفتیم. میرسیم به مدیریت سرویس‌های سیستم. اول از همه میریم سراغ systemctl. وقتی منوال دستور رو باز کنین همون اولش میبینین که نوشته این دستور برای مدیریت systemd هستش و یک سرویس‌منجیره. خب اول از همه systemd چیه؟

خب systemd یه سیستم منیجر و همینطور یه سرویس منیجره. در واقع وقتی به سیستم نگاه کنیم، سیستم ما متشکل از تعدادی پروسسه که در حال اجرا هستن. برای سادگی کار اینطور فرض کنیم که سیستم ما متشکل از تعدادی برنامه است؛ مثلا خود سیستم‌عامل هم خودش یه برنامست عملا. خب منطقا ما تو یه سیستم یه برنامه‌ای میخوایم که کنترل همه رو در دست بگیره. مثلا اگه یه برنامه‌ای رو خواستیم زوری ببندیم، یا نمیدونم اگه داشت درست کار نمی‌کرد مثلا وضعیت کارکردشو ببینیم یا هر نیاز این مدلی (ممکنه تا الان ذهنتون رفته باشه به سمت Task manager ویندوز ولی دست نگه‌دارین میخوایم به چیز بزرگتری برسیم). خب پس مشخصه که یه برنامه‌ی والدی نیازه که مدیریت سیستم رو در دست بگیره. وارد داستانا و سرگذشتای این برنامه‌ها نشیم ولی امروزه یا توزیعای لینوکسی و یونیکسی دارن از systemd استفاده میکنن یا از openrc (البته ممکنه از چیزای دیگم استفاده کنن که من خبر ندارم ولی خب سخت نگیریم اکثر لینوکسایی که شما میبینین از همین systemd استفاده میکنن).

داخل پرانتز میخوام ترکیب دوتا تا دستور ps و head رو به همراه pipe با هم استفاده کنیم تا همین systemd رو توی سیستممون ببینیمش. دستور زیر رو وار کنین تا اولین پروسس سیستم رو بهمون نشون بده.

ps -aux | head -n 2 

خب همونطور که میبینین PID اش 1 عه چون اولین پروسس سیستمه و اینکه کامندی که اجرا شده هم که همون systemd عه و اینکه زمان اجراشم که ببینین وقتی از زمان الان سیستم کم کنین به همون مقدار uptime میرسین.

خب این همه چیز تا اینجا گفتیم که به این برسیم که سیستم چه لینوکس باشه چه یونیکس چه ویندوز و چه هرچیز دیگه متشکل از یه تعدادی سرویسه. مثلا سرویس شبکه، بلوتوث، سرویس صدا و ... که لیست کامل سرویسای سیستمتون رو میتونین با دستور زیر ببینین

systemctl list-units --type=service

با systemctl میتونیم وضعیت سرویس‌ها رو ببینیم، اونها رو استاپ، استارت، فعال یا غیرفعال راه‌اندازی مجدد یا بارگزاری مجدد کنیم و خیلی کارای دیگه. (البته منطقا قرار نیست همشو بگیم چون هم خیلی زیاده هم از یه حدی به بعد براتون اصلا کاربردی هم نخواهد بود و هرجا خودتون نیاز پیدا کردین میرین منوالشو درست حسابی میخونین یا تو اینترنت سرچ میزنین)

برای استارت کردن یه سرویس از start، برای استاپ کردنش از stop، برای ری‌استارت کردنش از restart برای ریلود کردنش از realod (توجه کنین که reload و restart فرق دارن که تو زیربخش مربوطشون توضیح میدم)، برای اینکه سرویس همیشه در شروع کار سیستم up باشه از enable، برای اینکه در شروع کار سیستم down باشه از disable و برای دیدن وضعیت سرویسا از status استفاده می‌کنیم. جلوتر هر کدومشون رو جداگونه توضیح میدیم.