آیا فرمانی برای چاپ فهرست سرویسهای ناموفق در هنگام استفاده از systemd در لینوکس وجود دارد؟ آیا میتوان با استفاده از فرمان systemctl، لیست تمام سرویسهای ناموفق را مشاهده کرد؟ اینها سؤالاتی است که در ادامه به دنبال پاسخ آن هستیم.
در این آموزش نسبتاً کوتاه، نحوه پیدا کردن و چاپ فهرست سرویسهای ناموفق systemd در سیستمعاملهای لینوکس با استفاده از فرمان system را مرور خواهیم کرد.
فرمان systemctl برای چاپ فهرست سرویسهای ناموفق
فرمان systemctl برای کنترل systemd سیستم و مدیریت سرویسها به کار میرود. برای فهرستکردن تمام واحدهایی که هماکنون در حافظه system قرار دارند، میتوانید از گزینه list-units در فرمان systemctl استفاده کنید.
sudo systemctl list-units --failed ## OR ## sudo systemctl list-units --state failed
نکاتی در مورد گزینه 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
نحوه پیدا کردن وضعیت واحد یا سرویس
به صورت زیر از گزینه status استفاده کنید.
sudo systemctl status {service-name} sudo systemctl status ssh.service sudo systemctl status nginx.service sudo systemctl status vboxweb.service
نمایش مشخصات یک واحد سرویس
برای این منظور فرمان زیر را اجرا کنید.
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