آموزش لیست کردن سرویس های لینوکس با Systemctl
در لینوکس ، سرویس برنامه ای است که در پس زمینه اجرا می شود . سرویس ها را می توان در صورت نیاز یا در زمان راه اندازی فعال کرد. در این مقاله آموزش لیست کردن سرویس های لینوکس با Systemctl توضیح داده شده است.
اگر از لینوکس به عنوان سیستم عامل اصلی یا توسعه دهنده خود استفاده می کنید ، با سرویس های مختلفی مانند سرور ، ssh یا cron سرو کار خواهید داشت . دانستن چگونگی لیست کردن سرویس های در حال اجرا یا بررسی وضعیت سرویس در هنگام اشکال زدایی مشکلات سیستم مهم است.
بیشتر توزیع های اخیر لینوکس از systemd به عنوان سیستم پیش فرض و مدیر سرویس استفاده می کنند.
Systemd مجموعه ای از ابزارها برای مدیریت سیستم های لینوکس است. این برای راه اندازی ماشین ، مدیریت سرویس ها ، سیستم های پرونده خودکار کردن ، وقایع ورود به سیستم ، نام میزبان راه اندازی و سایر کارهای سیستم استفاده می شود.
لیست کردن سرویس های لینوکس با Systemctl
Systemd از مفهوم واحدها استفاده می کند که می تواند سرویس ها ، سوکت ها ، نقاط نصب ، دستگاه ها و غیره باشد. واحدها با استفاده از پرونده های متنی در قالب ini
تعریف می شوند . این پرونده ها شامل اطلاعات مربوط به واحد ، تنظیمات آن و دستورات اجرا می شود. پسوندهای نام پرونده نوع پرونده واحد را تعریف می کنند.
برای دریافت لیستی از تمام واحدهای سرویس های بارگیری شده ، تایپ کنید:
sudo systemctl list-units --type service
UNIT LOAD ACTIVE SUB DESCRIPTION
cron.service loaded active running Regular background program processing daemon
...
هر خط خروجی شامل ستون های زیر از چپ به راست است:
UNIT
– نام واحد خدمات.LOAD
– اطلاعاتی درباره اینکه آیا پرونده فایل در حافظه بارگیری شده است.ACTIVE
– حالت فعال سازی پرونده واحد سطح بالا ، که می تواند فعال ، بارگیری مجدد ، غیرفعال ، شکست خورده ، فعال ، غیرفعال کننده باشد. این یک تعمیم ستونSUB
است.SUB
– حالت فعال سازی پرونده واحد سطح پایین. مقدار این قسمت به نوع واحد بستگی دارد. به عنوان مثال ، یک سرویس از نوع می تواند در یکی از حالت های زیر باشد ، dead, exited, failed, inactive, یا running.DESCRIPTION
– شرح مختصر پرونده واحد.
به طور پیش فرض ، دستور فقط واحدهای فعال بارگذاری شده را لیست می کند. برای دیدن واحدهای بارگیری شده اما غیرفعال ، گزینه --all
را رد کنید:
sudo systemctl list-units --type service --all
اگر می خواهید همه پرونده های واحد نصب شده ، نه تنها بارگذاری شده را مشاهده کنید ، از موارد زیر استفاده کنید:
sudo systemctl list-unit-files
نمایش وضعیت سرویس ها
برای بررسی وضعیت سرویس ، از دستور systemctl status
استفاده کنید :
sudo systemctl status <service_name>.service
<service_name>
نام سرویسی که می خواهید بررسی کنید . به عنوان مثال برای تعیین وضعیت فعلی سرویس nginx که اجرا می کنید:
sudo systemctl status nginx.service
می توانید پسوند “.service” را حذف کنید. systemctl status nginx
همان است systemctl status nginx.service
.
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-12-23 19:13:50 UTC; 5s ago
Docs: man:nginx(8)
Process: 3061052 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 3061063 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 3061064 (nginx)
Tasks: 2 (limit: 470)
Memory: 6.0M
CGroup: /system.slice/nginx.service
├─3061064 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─3061065 nginx: worker process
Dec 23 19:13:50 linuxize.dev systemd[1]: Starting A high performance web server and a reverse proxy server...
این دستور اطلاعات زیر را چاپ می کند:
Loaded
– اینکه آیا واحد سرویس بارگیری شده است یا مسیر کامل به پرونده واحد. همچنین نشان می دهد که آیا واحد برای شروع زمان بوت فعال است یا خیر.Active
– آیا سرویس فعال و در حال اجرا است. اگر ترمینال شما از رنگ پشتیبانی می کند و سرویس فعال و در حال اجرا است ، قسمت dot (●
) و “فعال (در حال اجرا)” به رنگ سبز چاپ می شود. این خط همچنین مدت زمان اجرای سرویس را نشان می دهد.Docs
– اسناد سرویس.Process
– اطلاعات در مورد فرآیندهای خدمات.Main PID
– سرویس PID.Tasks
– تعداد وظایف محاسبه شده برای واحد و محدودیت وظایف.Memory
– اطلاعات مربوط به حافظه استفاده شده.CGroup
– اطلاعات مربوط به گروههای کنترل مرتبط.
اگر فقط می خواهید وضعیت سرویس را بررسی کنید ، از دستور systemctl is-active
استفاده کنید . به عنوان مثال ، برای تأیید در حال اجرا بودن سرویس nginx ، شما این کار را انجام می دهید:
systemctl is-active nginx.service
active
این دستور وضعیت سرویس را به شما نشان می دهد. اگر سرویس فعال باشد ، دستور وضعیت خروج 0 را برمی گرداند ، که می تواند هنگام استفاده از دستور داخل اسکریپت های پوسته مفید باشد.
نتیجه
ما به شما نشان داده ایم که چگونه از دستور systemctl
برای لیست کردن سرویسهای Linux و بررسی وضعیت آنها استفاده کنید.
اولین نفر باشید که نظر ارسال میکنید