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

در این آموزش نسبتاً‌ کوتاه، نحوه پیدا کردن و چاپ فهرست سرویس‌های ناموفق systemd در سیستم‌عامل‌های لینوکس با استفاده از فرمان system را مرور خواهیم کرد.

فرمان systemctl برای چاپ فهرست سرویس‌های ناموفق

فرمان systemctl برای کنترل systemd سیستم و مدیریت سرویس‌ها به کار می‌رود. برای فهرست‌کردن تمام واحد‌هایی که هم‌اکنون در حافظه system قرار دارند، می‌توانید از گزینه list-units در فرمان systemctl استفاده کنید.

sudo systemctl list-units --failed
## OR ##
sudo systemctl list-units --state failed
گزینه‌های فرمان systemctl برای چاپ فهرست سرویس‌های ناموفق

گزینه‌های فرمان systemctl برای چاپ فهرست سرویس‌های ناموفق

نکاتی در مورد گزینه is-failed

امکان بررسی وضعیت «ناموفق‌بودن» یک سرویس یا واحد در لینوکس وجود دارد. پس از اجرای فرمان زیر، اگر حداقل یک سرویس ناموفق وجود داشته باشد، کد صفر نمایش داده خواهد شد. مگر اینکه گزینه –quiet به فرمان systemctl اضافه شده باشد که در این صورت، وضعیت کنونی واحد در خروجی استاندارد چاپ می‌شود.

sudo systemctl is-failed {service-name-here}
sudo systemctl is-failed nginx.service
sudo systemctl is-failed vboxweb.service

حالت دیگر، اجرای فرمان ساده زیر به همراه فرمان grep به منظور تهیه لیست سرویس‌های ناموفق است.

sudo systemctl list-units | grep -i failed
گزینه‌های systemctl برای چاپ فهرست سرویس‌های ناموفق در لینوکس اوبونتو یا دبیان

گزینه‌های systemctl برای چاپ فهرست سرویس‌های ناموفق در لینوکس اوبونتو یا دبیان

نحوه پیدا کردن وضعیت واحد یا سرویس

به صورت زیر از گزینه status استفاده کنید.

sudo systemctl status {service-name}
sudo systemctl status ssh.service
sudo systemctl status nginx.service
sudo systemctl status vboxweb.service
گزینه status در فرمان systemctl

گزینه status در فرمان systemctl

نمایش مشخصات یک واحد سرویس

برای این منظور فرمان زیر را اجرا کنید.

sudo systemctl show {service-name}
sudo systemctl show vboxweb.service

نحوه مشاهده پیام‌های ثبت وقایع

پیام‌های ثبت‌وقایع می‌توانند اطلاعات جامعی در مورد سرویس‌های ما باشند. از این اطلاعات می‌توانیم برای موارد مرتبط با عیب‌یابی استفاده کنیم. قالب کار به صورت زیر خواهد بود.

نمایش تمام پیام‌ها

journalctl
journalctl | grep 'error'

نمایش فقط پیام‌های کرنل

journalctl –k

نمایش پیام‌های لحظه‌ای بر روی صفحه به محض ظاهر شدن

journalctl –f

چگونه پیام‌های مرتبط با یک سرویس خاص را مشاهده کنیم؟

journalctl -u {service-name-here}
journalctl -u ssh.service
journalctl -u vboxweb.service

نمونه خروجی

-- Reboot –
Apr 17 00:41:06 nixcraft-wks01 systemd[1]: Starting VirtualBox Web Service…
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]: WARNING: The character device /dev/vboxdrv does not exist.
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]:          Please install the virtualbox-dkms package and the appropriate
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]:          headers, most likely linux-headers-generic.
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]:          You will not be able to start VMs until this problem is fixed
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]: Oracle VM VirtualBox web service Version 6.0.14_Ubuntu
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]: (C) 2007-2019 Oracle Corporation
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]: All rights reserved.
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]: 00:00:00.001759 main     VirtualBox web service 6.0.14_Ubuntu r132055 linux.amd64 (Oct 17 2019 07:24:16) release log
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]: 00:00:00.001764 main     Log opened 2020-04-16T19:11:06.826028000Z
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]: 00:00:00.001765 main     Build Type: release
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]: 00:00:00.001768 main     OS Product: Linux
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]: 00:00:00.001769 main     OS Release: 5.3.0-46-generic
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]: 00:00:00.001770 main     OS Version: #38-Ubuntu SMP Fri Mar 27 17:37:05 UTC 2020
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]: 00:00:00.001831 main     DMI Product Name: 20QVCTO1WW
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]: 00:00:00.001855 main     DMI Product Version: ThinkPad X1 Extreme 2<sup>nd</sup>
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]: 00:00:00.001920 main     Host RAM: 31866MB (31.1GB) total, 31409MB (30.6GB) available
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]: 00:00:00.001924 main     Executable: /usr/lib/virtualbox/vboxwebsrv
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]: 00:00:00.001924 main     Process ID: 1675
Apr 17 00:41:06 nixcraft-wks01 vboxwebsrv[1675]: 00:00:00.001925 main     Package type: LINUX_64BITS_GENERIC (OSE)
Apr 17 00:41:06 nixcraft-wks01 systemd[1]: Started VirtualBox Web Service.
Apr 20 11:44:00 nixcraft-wks01 systemd[1]: Stopping VirtualBox Web Service…
Apr 20 11:44:05 nixcraft-wks01 systemd[1]: vboxweb.service: Succeeded.
Apr 20 11:44:05 nixcraft-wks01 systemd[1]: Stopped VirtualBox Web Service.
Apr 20 11:44:05 nixcraft-wks01 systemd[1]: Starting VirtualBox Web Service…
Apr 20 11:44:05 nixcraft-wks01 systemd[1]: vboxweb.service: Can’t open PID file /run/vboxweb.pid (yet?) after start: No such file or directory
Apr 20 11:44:05 nixcraft-wks01 systemd[1]: vboxweb.service: Failed with result ‘protocol’.
Apr 20 11:44:05 nixcraft-wks01 systemd[1]: Failed to start VirtualBox Web Service.
-- Reboot –
Apr 20 11:52:48 nixcraft-wks01 systemd[1]: Starting VirtualBox Web Service…
Apr 20 11:52:48 nixcraft-wks01 systemd[1]: vboxweb.service: Can’t open PID file /run/vboxweb.pid (yet?) after start: Operation not permitted
Apr 20 11:52:48 nixcraft-wks01 systemd[1]: vboxweb.service: Failed with result ‘protocol’.
Apr 20 11:52:48 nixcraft-wks01 systemd[1]: Failed to start VirtualBox Web Service.
-- Reboot –
Apr 20 12:17:31 nixcraft-wks01 systemd[1]: Starting VirtualBox Web Service…
Apr 20 12:17:31 nixcraft-wks01 systemd[1]: vboxweb.service: Can’t open PID file /run/vboxweb.pid (yet?) after start: Operation not permitted
Apr 20 12:17:31 nixcraft-wks01 systemd[1]: vboxweb.service: Failed with result ‘protocol’.
Apr 20 12:17:31 nixcraft-wks01 systemd[1]: Failed to start VirtualBox Web Service.
-- Reboot –
Apr 20 12:35:06 nixcraft-wks01 systemd[1]: Starting VirtualBox Web Service…
Apr 20 12:35:06 nixcraft-wks01 systemd[1]: vboxweb.service: Can’t open PID file /run/vboxweb.pid (yet?) after start: Operation not permitted
Apr 20 12:35:06 nixcraft-wks01 systemd[1]: vboxweb.service: Failed with result ‘protocol’.
Apr 20 12:35:06 nixcraft-wks01 systemd[1]: Failed to start VirtualBox Web Service.
-- Reboot –
Apr 21 00:09:56 nixcraft-wks01 systemd[1]: Starting VirtualBox Web Service…
Apr 21 00:09:56 nixcraft-wks01 systemd[1]: vboxweb.service: Can’t open PID file /run/vboxweb.pid (yet?) after start: Operation not permitted

حالا می‌توانیم در فضای آنلاین به دنبال این خطاها بگردیم و یا صفحات راهنمای man را بخوانیم و مشکل را رفع کنیم.

جمع‌بندی

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

منبع: Cyberciti.biz