| UPSDRVSVCCTL(8) | NUT Manual | UPSDRVSVCCTL(8) |
نام (NAME)
upsdrvsvcctl - ابزار مدیریت سرویسهای درایور یوپیاس در NUT
خلاصه دستور (SYNOPSIS)
upsdrvsvcctl -h
upsdrvsvcctl [گزینهها] {start | stop | status} [ups]
توضیحات (DESCRIPTION)
دستور upsdrvsvcctl یک رابط یکپارچه برای کنترل درایورهای یوپیاس (UPS) شما که در قالب نمونههای سرویس بستهبندی شدهاند بر روی پلتفرمهایی که از آن پشتیبانی میکنند فراهم میکند (در حال حاضر این پلتفرمها شامل توزیعهای لینوکس مجهز به systemd و سیستمهای برگرفته از پایهکد Solaris 10، از جمله Sun/Oracle Solaris اختصاصی و توزیعهای متنباز متعدد illumos با SMF است). ممکن است در بستهبندی سایر سیستمعاملها نصب نشده باشد.
در صورت استفاده صحیح، upsdrvsvcctl به شما امکان میدهد اسکریپتهای راهاندازی یکسانی را در چندین سیستم با پیکربندیهای مختلف یوپیاس نگهداری کنید.
هدف این راهکار این است که به سرویسهای کارساز داده upsd(8) اجازه دهد حتی در صورت عدم دسترسی موقت به برخی از دستگاههای برق راهاندازی شوند، و در صورت بروز مشکل (باگ درایور، شکست در راهاندازی) درایورهای NUT به طور خودکار توسط سیستم بازراهاندازی شوند. همچنین با اجازه دادن به هر درایور برای شروع همگام با سایرین و به محض در دسترس قرار گرفتن زیرسیستم مورد نیاز برای رسانه اختصاصی آن درایور، امکان راهاندازی سریعتر سیستمهایی را که چندین دستگاه را پایش میکنند فراهم میآورد؛ یعنی نه با یک حلقه ترتیبی مانند گذشته.
نمونههای سرویس مستقل برای هر درایور NUT همچنین امکان پیکربندی وابستگیهای بیشتری را فراهم میکنند، مانند اینکه دسترسی به شبکه برای SNMP و درایورهای مشابه باید فراهم باشد (اما برای درایورهای رسانه محلی مانند سریال یا USB نیازی به آن نیست).
راهکار قدیمی و یکپارچه «همه یا هیچ» که مستلزم در حال اجرا بودن تمام درایورها بود و برای استقرارهایی با چند یوپیاس کفایت میکرد، برای پایش استقرارهای بزرگتر چندان کارآمد نبود. همچنین ایجاد تعادلی از پیشتعیینشده میان حفاظت زودهنگام یوپیاس برای پیکربندیهای خانگی USB/سریال در مقابل انتظار برای دسترسی به شبکه در محیطهای بزرگتر آسان نبود.
دستور upsdrvsvcctl اسکریپتی است که از عملکرد برنامه upsdrvctl(8) (در صورت امکان) تقلید میکند تا هنگام کار با درایورهای بستهبندیشده در قالب نمونههای سرویس، به جای دیمنهای مستقیماً اجرا شده، تجربه کاربری نهایی مشابهی ارائه دهد. این ابزار برای بخش بزرگی از عملیات واقعی خود به nut-driver-enumerator(8) متکی است.
تا حد امکان (یعنی برای استفاده عملیاتی در سیستمعاملهای سازگار)، باید به جای فراخوانی مستقیم درایورها و مدیریت مبتنی بر دیمن با upsdrvctl(8)، از upsdrvsvcctl استفاده کنید. در غیر این صورت (برای آزمایش یا سایر سیستمعاملها)، ابزار upsdrvctl گزینه پیشنهادی است.
گزینهها (OPTIONS)
-h
-V
-t
--timeout-cmd <prog> و --timeout-args <arg>
گزینههای UPSDRVCTL که (در حال حاضر) در UPSDRVSVCCTL قابل اعمال نیستند (OPTIONS OF UPSDRVCTL NOT (CURRENTLY) APPLICABLE TO UPSDRVSVCCTL)
گزینههایی مانند -r، -u یا -D میتوانند توسط ویژگیهای خود نمونههای سرویس مدیریت شوند، و این اسکریپت به پیکربندی آنها کمک میکند (با فرض دسترسیهای مناسب کاربری که آن را فراخوانی کرده است). با این حال، تغییر چنین گزینههایی در یک سیستم پیکربندیشده کاربرد عملیاتی ندارد — بنابراین برای آزمایشها و عیبیابی، بهتر است نمونه سرویس متوقف شده و مستقیماً با upsdrvctl کار شود.
-r directory
این مقدار را میتوان در ups.conf(5) با دستورالعمل chroot در بخش سراسری تنظیم کرد.
-u username
اگر درایور به عنوان root بدون تعیین این مقدار راهاندازی شود، از نام کاربری که در فایل باینری کامپایل شده است استفاده خواهد کرد. مقدار پیشفرض آن nobody است (اگر جور دیگری پیکربندی نشده باشد)، که اصلاً ایدهآل نیست.
این مقدار را میتوان در ups.conf(5) با دستورالعمل user در بخش سراسری تنظیم کرد.
-D
دستورات (COMMANDS)
دستور upsdrvsvcctl از سه دستوری که توسط upsdrvctl پردازش میشوند پشتیبانی میکند — start، stop و shutdown. آنها یک آرگومان اختیاری دریافت میکنند که نام یک UPS از ups.conf(5) است. بدون آن آرگومان، آنها بر روی هر UPS که در حال حاضر پیکربندی شده است عمل میکنند.
نکته: دستور shutdown در حال حاضر با متوقف کردن نمونههای سرویس درایور برای آزادسازی پورتهای احیاناً اشغالشده و غیره، فراخوانی مستقیم upsdrvctl برای صدور دستور خاموشسازی، و راهاندازی مجدد نمونههای سرویس درایور برای اتصال مجدد پس از بازگشت دستگاه به حالت برخط، پشتیبانی میشود.
start
stop
status
دستور upsdrvsvcctl همچنین از عملیاتهای بیشتری برای عیبیابی نگاشت نام بخشهای درایور NUT به نام نمونههای سرویس (که ممکن است به دلیل محدودیتهای سیستمهای مختلف متفاوت باشد) پشتیبانی میکند.
list
resync
دستورات UPSDRVCTL که (در حال حاضر) در UPSDRVSVCCTL قابل اعمال نیستند (COMMANDS OF UPSDRVCTL NOT (CURRENTLY) APPLICABLE TO UPSDRVSVCCTL)
shutdown
هشدار
این کار احتمالاً رایانههای شما را خاموش میکند، بنابراین با این گزینه بازی نکنید. فقط زمانی از آن استفاده کنید که سیستمهای شما آماده قطع برق باشند.
نکته
برای استفاده از پارامتر nowait به ups.conf(5) مراجعه کنید. این مقدار را میتوان با متغیر محیطی NUT_IGNORE_NOWAIT لغو کرد (برای مثال، برای دور زدن برخی مشکلات خاص با systemd در غیر این صورت استفاده میشود).
متغیرهای محیطی (ENVIRONMENT VARIABLES)
متغیر NUT_CONFPATH نام مسیر دایرکتوری است که حاوی upsd.conf و سایر فایلهای پیکربندی است. اگر این متغیر تنظیم نشده باشد، upsdrvsvcctl (یا در واقع nut-driver-enumerator.sh) از یک مقدار پیشفرض توکار استفاده میکند که معمولاً /usr/local/ups/etc است.
عیبیابی (DIAGNOSTICS)
اگر upsdrvsvcctl هنگام انجام عملیات مورد نظر با خطایی مواجه شود، یک کد خروج غیر صفر برمیگرداند. این امر همچنین در صورتی رخ میدهد که ورود یک درایور به پسزمینه بیشتر از دوره زمانی maxstartdelay طول بکشد.
هر پیامی که توسط برنامه upsdrvctl (که برای راهاندازی درایورهای NUT به عنوان بخشی از پیادهسازی نمونههای سرویس استفاده میشود) یا توسط خود درایورها صادر شود، توسط امکانات چارچوب مدیریت سرویس ثبت (لاگ) میشود و در ترمینال تعاملی شما که برای مدیریت درایور استفاده میشود ظاهر نخواهد شد.
از دستور upsdrvsvcctl list یا upsdrvsvcctl list NUT-device برای پیدا کردن نام نمونه سرویس برای درایور NUT (نام بخش) مورد نظر خود استفاده کنید. سپس گزارشهای سرویس (محل ذخیره خروجیهای برنامه پیادهسازی سرویس و همچنین پیامهای چارچوب درباره این سرویس) را مطابق پیشنهاد زیر بررسی کنید:
Linux systemd
journalctl -lu nut-driver@instance-name
توجه داشته باشید که پیکربندی محلی سیستم شما ممکن است تحت تأثیر ظرافتهایی مانند ارسال دادههای ژورنال به یک سرور syslog استاندارد، و/یا داشتن یک حافظه موقت (کش) کوچک برای پیامهای ژورنال ذخیرهشده محلی (به طوری که ورودیهای قدیمیتر ناپدید شوند) قرار گیرد. همچنین ممکن است یک رونوشت از ژورنالها در سیستم فایل پایدار ذخیره شده یا اصلاً ذخیره نشده باشد.
Solaris SMF
نویسنده (AUTHOR)
Jim Klimov <jimklimov+nut@gmail.com>
همچنین ببینید (SEE ALSO)
upsdrvctl(8), nutupsdrv(8), upsd(8), nut-driver-enumerator(8), ups.conf(5)
منابع اینترنتی (Internet resources):
صفحه اصلی NUT (Network UPS Tools): https://www.networkupstools.org/historic/v2.8.5
| 06/21/2026 | Network UPS Tools 2.8.5 |