.TH strigger "1" "Slurm Commands" "Slurm 26.05" "Slurm Commands" .SH "نام (NAME)" strigger \- برای تنظیم، دریافت یا پاک‌سازی اطلاعات تریگرهای Slurm استفاده می‌شود. .SH "خلاصه دستور (SYNOPSIS)" \fBstrigger \-\-set\fR [\fIOPTIONS\fR...] .br \fBstrigger \-\-get\fR [\fIOPTIONS\fR...] .br \fBstrigger \-\-clear\fR [\fIOPTIONS\fR...] .SH "توضیحات (DESCRIPTION)" دستور \fBstrigger\fR برای تنظیم، دریافت یا پاک‌سازی اطلاعات تریگرهای Slurm به‌کار می‌رود. تریگرها شامل رویدادهایی نظیر از کار افتادن یک گره، رسیدن یک کار به محدودیت زمانی خود، یا پایان یافتن یک کار هستند. این رویدادها می‌توانند اقداماتی مانند اجرای یک اسکریپت دلخواه را راه‌اندازی کنند. از کاربردهای متداول می‌توان به اطلاع‌رسانی خرابی گره‌ها به مدیران سیستم و پایان دادن مسالمت‌آمیز به یک کار در هنگام نزدیک شدن به محدودیت زمانی آن اشاره کرد. یک عبارت hostlist برای فهرست گره‌ها یا شناسه کار به‌عنوان آرگومان به برنامه ارسال می‌شود. رویدادهای تریگر به‌صورت آنی پردازش نمی‌شوند، بلکه بررسی رویدادهای تریگر به‌طور دوره‌ای (در حال حاضر هر ۱۵ ثانیه یک‌بار) انجام می‌پذیرد. هر رویداد تریگری که در طول این بازه زمانی رخ دهد، در پایان بازه با برنامه‌های تریگر تنظیم‌شده مقایسه خواهد شد. برنامه تریگر برای هر رویدادی که در آن بازه رخ دهد، یک‌بار اجرا خواهد شد. سپس سابقه آن رویدادها (برای مثال، گره‌هایی که در ۱۵ ثانیه گذشته به وضعیت DOWN رفته‌اند) پاک خواهد شد. برنامه تریگر برای اطمینان از اینکه هیچ رویدادی از دست نرود، باید پیش از پایان بازه بعدی یک تریگر جدید تنظیم کند، یا اینکه تریگر باید با آرگومان «\-\-flags=PERM» ایجاد شده باشد. در صورت تمایل، می‌توان چندین برنامه تریگر را برای یک رویداد یکسان تنظیم کرد. \fBنکته\fR: این دستور تنها زمانی می‌تواند تریگرها را تنظیم کند که توسط کاربر \fISlurmUser\fR اجرا شود، مگر اینکه \fISlurmUser\fR به‌عنوان کاربر root پیکربندی شده باشد. این امر برای دیمن \fIslurmctld\fR ضروری است تا بتواند شناسه‌های کاربری و گروهی مناسب را برای برنامه در حال اجرا تنظیم کند. همچنین توجه داشته باشید که برنامه تریگر بر روی همان گره‌ای اجرا می‌شود که دیمن \fIslurmctld\fR استفاده می‌کند، نه بر روی یک گره محاسباتی تخصیص‌یافته. برای بررسی مقدار \fISlurmUser\fR، دستور زیر را اجرا کنید: .IP .nf scontrol show config | grep SlurmUser .fi .SH "آرگومان‌ها (ARGUMENTS)" .TP \fB\-C\fR, \fB\-\-backup_slurmctld_assumed_control\fR فعال‌سازی رویداد هنگامی که slurmctld پشتیبان کنترل را در دست می‌گیرد. .IP .TP \fB\-B\fR, \fB\-\-backup_slurmctld_failure\fR فعال‌سازی یک رویداد هنگامی که slurmctld پشتیبان با شکست مواجه می‌شود. .IP .TP \fB\-c\fR, \fB\-\-backup_slurmctld_resumed_operation\fR فعال‌سازی یک رویداد هنگامی که slurmctld پشتیبان پس از شکست، عملکرد خود را از سر می‌گیرد. .IP .TP \fB\-\-burst_buffer\fR فعال‌سازی رویداد هنگامی که خطای burst buffer رخ می‌دهد. .IP .TP \fB\-\-clear\fP پاک‌سازی یا حذف یک تریگر رویداد که از پیش تعریف شده است. برای تعیین تریگر(های) مورد نظر جهت پاک‌سازی، باید گزینه \fB\-\-id\fR، \fB\-\-jobid\fR یا \fB\-\-user\fR مشخص شود. تنها کاربر root یا ایجادکننده تریگر می‌تواند یک تریگر را حذف کند. .IP .TP \fB\-M\fR, \fB\-\-clusters\fR=<\fIstring\fR> خوشه‌هایی که دستورها باید به آن‌ها ارسال شوند. توجه داشته باشید که \fBslurmdbd\fR باید فعال باشد تا این گزینه به‌درستی کار کند، مگر اینکه در یک فدراسیون با پیکربندی \fBFederationParameters=fed_display\fR اجرا شود. .IP .TP \fB\-d\fR, \fB\-\-down\fR فعال‌سازی یک رویداد در صورتی که گره مشخص‌شده به وضعیت DOWN برود. .IP .TP \fB\-D\fR, \fB\-\-drained\fR فعال‌سازی یک رویداد در صورتی که گره مشخص‌شده به وضعیت DRAINED برود. .IP .TP \fB\-\-draining\fR فعال‌سازی یک رویداد در صورتی که گره مشخص‌شده پیش از تبدیل شدن به DRAINED، به وضعیت DRAINING برود. .IP .TP \fB\-F\fR, \fB\-\-fail\fR فعال‌سازی یک رویداد در صورتی که گره مشخص‌شده به وضعیت FAILING برود. .IP .TP \fB\-f\fR, \fB\-\-fini\fR فعال‌سازی یک رویداد هنگامی که اجرای کار مشخص‌شده به پایان می‌رسد. .IP .TP \fB\-\-flags\fR=<\fIflag\fR> مرتبط ساختن پرچم‌ها با رزرو. چندین پرچم باید با کاما از یکدیگر جدا شوند. پرچم‌های معتبر عبارتند از: .IP .RS .TP \fBPERM\fR دائمی کردن تریگر؛ پس از وقوع رویداد آن را پاک نکنید. .RE .IP .TP \fB\-\-get\fP نمایش تریگرهای رویداد ثبت‌شده. می‌توان از گزینه‌ها برای اهداف فیلتر کردن استفاده کرد. .IP .TP \fB\-i\fR, \fB\-\-id\fR=<\fIid\fR> شماره شناسه (ID) تریگر. .IP .TP \fB\-I\fR, \fB\-\-idle\fR فعال‌سازی یک رویداد در صورتی که گره مشخص‌شده حداقل به مدت زمان تعیین‌شده توسط گزینه \fB\-\-offset\fR در وضعیت IDLE باقی بماند. این گزینه می‌تواند برای به خواب بردن (hibernate) گره‌ای که بی‌کار مانده و در نتیجه کاهش مصرف برق مفید باشد. .IP .TP \fB\-j\fR, \fB\-\-jobid\fR=<\fIid\fR> شناسه کار (Job ID) مورد نظر. به‌جای شناسه عددی کار، می‌توان از یک SLUID نیز استفاده کرد. مقدار RES_ID به همان صورتی که مشخص شده است ذخیره می‌شود. اگر برای تنظیم تریگر از SLUID استفاده شود، تریگر باید با همان SLUID پرس‌وجو یا پاک شود، نه با شناسه عددی کار (و برعکس). \fBنکته\fR: گزینه \fB\-\-jobid\fR نمی‌تواند همراه با گزینه \fB\-\-node\fR استفاده شود. هنگامی که گزینه \fB\-\-jobid\fR در ترکیب با گزینه \fB\-\-up\fR یا \fB\-\-down\fR استفاده شود، تمام گره‌های تخصیص‌یافته به آن کار به‌عنوان گره‌های استفاده‌شده برای رویداد تریگر در نظر گرفته می‌شوند. .IP .TP \fB\-n\fR, \fB\-\-node\fR[=\fIhost\fR] نام میزبان(های) مورد نظر. به‌طور پیش‌فرض، تمام گره‌های مرتبط با کار (در صورت مشخص بودن \fB\-\-jobid\fR) یا موجود در سامانه برای تریگرهای رویداد در نظر گرفته می‌شوند. \fBنکته\fR: گزینه \fB\-\-node\fR نمی‌تواند همراه با گزینه \fB\-\-jobid\fR استفاده شود. هنگامی که گزینه \fB\-\-jobid\fR در ترکیب با گزینه \fB\-\-up\fR، \fB\-\-down\fR یا \fB\-\-drained\fR استفاده شود، تمام گره‌های تخصیص‌یافته به آن کار به‌عنوان گره‌های استفاده‌شده برای رویداد تریگر در نظر گرفته خواهند شد. از آنجا که آرگومان این گزینه اختیاری است، برای تجزیه صحیح، مقدار باید بلافاصله پس از گزینه تک‌حرفی بیاید و فاصله‌ای میان آن‌ها نباشد؛ برای مثال «\-ntux» و نه «\-n tux». .IP .TP \fB\-N\fR, \fB\-\-noheader\fR هنگام نمایش فهرست تریگرها، سربرگ چاپ نشود. .IP .TP \fB\-o\fR, \fB\-\-offset\fR=<\fIseconds\fR> اقدام مشخص‌شده باید پس از گذشت این فاصله زمانی از رویداد انجام شود. در صورتی که اقدام باید پیش از رویداد انجام پذیرد، مقداری منفی مشخص کنید. اگر هیچ گزینه \fB\-\-offset\fR مشخص نشده باشد، مقدار پیش‌فرض صفر است. دقت تفکیک زمانی این مقدار حدود ۲۰ ثانیه است؛ بنابراین برای اجرای یک اسکریپت در زمانی نه کمتر از پنج دقیقه پیش از رسیدن کار به محدودیت زمانی‌اش، مقدار \fB\-\-offset=320\fR (۵ دقیقه به‌علاوه ۲۰ ثانیه) را مشخص کنید. .IP .TP \fB\-h\fR, \fB\-\-primary_database_failure\fR فعال‌سازی یک رویداد هنگامی که پایگاه داده اصلی با شکست مواجه می‌شود. این رویداد زمانی فعال می‌شود که افزونه حساب‌رسی (accounting plugin) تلاش می‌کند اتصالی با mysql برقرار کند اما با شکست مواجه می‌شود و slurmctld برای برخی از عملیات خود به پایگاه داده نیاز دارد. .IP .TP \fB\-H\fR, \fB\-\-primary_database_resumed_operation\fR فعال‌سازی یک رویداد هنگامی که پایگاه داده اصلی پس از شکست، عملکرد خود را از سر می‌گیرد. این امر زمانی رخ می‌دهد که اتصال به mysql از سوی افزونه حساب‌رسی بازیابی شود. .IP.TP \fB\-g\fR, \fB\-\-primary_slurmdbd_failure\fR هنگامی که slurmdbd اصلی از کار بیفتد، رویدادی را فعال می‌کند. این محرک توسط slurmctld در مواقعی اجرا می‌شود که تلاش می‌کند به slurmdbd متصل شود، اما هیچ پاسخی روی سوکت دریافت نمی‌کند. .IP .TP \fB\-G\fR, \fB\-\-primary_slurmdbd_resumed_operation\fR هنگامی که slurmdbd اصلی پس از یک خرابی فعالیت خود را از سر می‌گیرد، رویدادی را فعال می‌کند. این رویداد زمانی فعال می‌شود که برقراری اتصال از slurmctld به slurmdbd منجر به دریافت پاسخ شود. این امر می‌تواند در شرایط مختلف دیگری نیز رخ دهد، به‌صورت دوره‌ای هر ۱۵ ثانیه هنگام بررسی وضعیت اتصال، هنگام ذخیره وضعیت، زمانی که صف کارگزار (agent) در حال پر شدن است و موارد دیگر. .IP .TP \fB\-e\fR, \fB\-\-primary_slurmctld_acct_buffer_full\fR هنگامی که بافر حسابداری slurmctld اصلی پر شود، رویدادی را فعال می‌کند. .IP .TP \fB\-a\fR, \fB\-\-primary_slurmctld_failure\fR هنگامی که slurmctld اصلی از کار بیفتد، رویدادی را فعال می‌کند. .IP .TP \fB\-b\fR, \fB\-\-primary_slurmctld_resumed_control\fR هنگامی که slurmctld اصلی کنترل را از سر بگیرد، رویدادی را فعال می‌کند. .IP .TP \fB\-A\fR, \fB\-\-primary_slurmctld_resumed_operation\fR هنگامی که slurmctld اصلی پس از یک خرابی فعالیت خود را از سر بگیرد، رویدادی را فعال می‌کند. .IP .TP \fB\-p\fR, \fB\-\-program\fR=<\fIpath\fR> هنگام وقوع رویداد، برنامه را در مسیر کامل (fully qualified pathname) مشخص‌شده اجرا می‌کند. در صورت تمایل می‌توانید مسیر را در علامت نقل‌قول قرار داده و آرگومان‌های اضافی برنامه را اضافه کنید. برنامه با هویت کاربری که محرک را تنظیم کرده است اجرا خواهد شد. اگر برنامه ظرف مدت ۵ دقیقه خاتمه نیابد، به همراه تمام فرایندهای ایجادشده متوقف (kill) خواهد شد. .IP .TP \fB\-Q\fR, \fB\-\-quiet\fR خطاهای غیرمهلک (non\-fatal) را گزارش نمی‌کند. این گزینه می‌تواند برای پاکسازی محرک‌هایی که ممکن است قبلاً حذف شده باشند مفید باشد. .IP .TP \fB\-r\fR, \fB\-\-reconfig\fR هنگامی که پیکربندی سیستم تغییر کند، رویدادی را فعال می‌کند. این رویداد زمانی فعال می‌شود که دیمن slurmctld فایل پیکربندی خود را می‌خواند یا زمانی که وضعیت یک گره (node) تغییر می‌کند. .IP .TP \fB\-R\fR, \fB\-\-resume\fR اگر گره مشخص‌شده در وضعیت RESUME قرار گیرد، رویدادی را فعال می‌کند. .IP .TP \fB\-\-set\fP یک محرک رویداد را بر اساس گزینه‌های ارائه‌شده ثبت می‌کند. \fBتوجه\fR: هر رویداد تنها یک بار فعال می‌شود. برای پردازش رویدادهای بعدی از همان نوع، باید یک محرک رویداد جدید تنظیم و برقرار شود. محرک‌ها تنها در صورتی قابل تنظیم هستند که دستور توسط کاربر \fISlurmUser\fR اجرا شود، مگر اینکه \fISlurmUser\fR به عنوان کاربر ریشه (root) پیکربندی شده باشد. .IP .TP \fB\-t\fR, \fB\-\-time\fR هنگامی که محدودیت زمانی کار (job) مشخص‌شده فرا برسد، رویدادی را فعال می‌کند. این گزینه باید همراه با گزینه \fB\-\-jobid\fR استفاده شود. .IP .TP \fB\-u\fR, \fB\-\-up\fR اگر گره مشخص‌شده از وضعیت DOWN به وضعیت سرویس‌دهی بازگردد، رویدادی را فعال می‌کند. .IP .TP \fB\-\-user\fR=<\fIuser_name_or_id\fR> محرک‌های ایجادشده توسط کاربر مشخص‌شده را پاک کرده یا دریافت می‌کند. به عنوان مثال، محرکی که توسط کاربر \fIroot\fR برای کاری ایجادشده توسط کاربر \fIadam\fR ساخته شده است، می‌تواند با گزینه \fI\-\-user=root\fR پاک شود. یک نام کاربری یا شناسه کاربری (user ID) را مشخص کنید. .IP .TP \fB\-v\fR, \fB\-\-verbose\fR گزارش‌گیری مفصل رویدادها را چاپ می‌کند. این شامل برچسب‌های زمانی روی ساختارهای داده، شمارش رکوردها و غیره است. .IP .TP \fB\-V\fR , \fB\-\-version\fR اطلاعات نسخه را چاپ کرده و خارج می‌شود. .IP .SH "توضیحات فیلدهای خروجی (OUTPUT FIELD DESCRIPTIONS)" .TP \fBTRIG_ID\fP شماره شناسه محرک (Trigger ID). .IP .TP \fBRES_TYPE\fP نوع منبع: \fIjob\fR یا \fInode\fR .IP .TP \fBRES_ID\fP شناسه منبع: شناسه job، نام‌های میزبان یا "*" برای هر میزبانی .IP .TP \fBTYPE\fP نوع محرک: \fItime\fR یا \fIfini\fR (تنها برای کارها)، \fIdown\fR یا \fIup\fR (برای کارها یا گره‌ها)، یا \fIdrained\fR، \fIidle\fR یا \fIreconfig\fR (تنها برای گره‌ها) .IP .TP \fBOFFSET\fP انحراف زمانی (offset) بر حسب ثانیه. اعداد منفی نشان می‌دهند که اقدام باید قبل از رویداد رخ دهد (در صورت امکان) .IP .TP \fBUSER\fP نام کاربری که اقدام را درخواست کرده است .IP .TP \fBPROGRAM\fP مسیر برنامه‌ای که باید هنگام وقوع رویداد اجرا شود .IP.SH "عملکرد (PERFORMANCE)" .PP اجرای \fBstrigger\fR یک فراخوانی روال از راه دور (remote procedure call) به \fBslurmctld\fR ارسال می‌کند. اگر تعداد فراخوانی‌های هم‌زمان از سوی \fBstrigger\fR یا سایر دستورهای کلاینت Slurm که فراخوانی روال از راه دور به دیمن \fBslurmctld\fR ارسال می‌کنند به حد کافی زیاد باشد، می‌تواند منجر به افت عملکرد دیمن \fBslurmctld\fR شده و احتمالاً به منع سرویس (denial of service) بیانجامد. .PP از اجرای \fBstrigger\fR یا سایر دستورهای کلاینت Slurm که فراخوانی روال از راه دور به \fBslurmctld\fR ارسال می‌کنند در حلقه‌های اسکریپت‌های شل یا برنامه‌های دیگر خودداری کنید. اطمینان حاصل کنید که برنامه‌ها، فراخوانی‌های \fBstrigger\fR را به حداقل میزان لازم برای جمع‌آوری اطلاعات مورد نظر محدود می‌کنند. .SH "متغیرهای محیطی (ENVIRONMENT VARIABLES)" .PP برخی از گزینه‌های \fBstrigger\fR را می‌توان از طریق متغیرهای محیطی تعیین کرد. این متغیرهای محیطی به همراه گزینه‌های متناظرشان در زیر فهرست شده‌اند. (توجه: گزینه‌های خط فرمان همیشه این تنظیمات را بازنویسی خواهند کرد.) .TP 20 \fBSLURM_CONF\fR مکان فایل پیکربندی Slurm. .IP .TP \fBSLURM_DEBUG_FLAGS\fR فلگ‌های اشکال‌زدایی را برای استفاده توسط strigger مشخص می‌کند. برای مشاهده فهرست کامل فلگ‌ها، به DebugFlags در صفحه راهنمای \fBslurm.conf\fR(5) مراجعه کنید. این متغیر محیطی بر تنظیمات موجود در slurm.conf اولویت دارد. .IP .SH "مثال‌ها (EXAMPLES)" .TP اجرای برنامه "/usr/sbin/primary_slurmctld_failure" هر زمان که slurmctld اصلی دچار خرابی شود. .IP .nf $ cat /usr/sbin/primary_slurmctld_failure #!/bin/bash # Submit trigger for next primary slurmctld failure event strigger \-\-set \-\-primary_slurmctld_failure \\ \-\-program=/usr/sbin/primary_slurmctld_failure # Notify the administrator of the failure using e\-mail /bin/mail slurm_admin@site.com \-s Primary_SLURMCTLD_FAILURE $ strigger \-\-set \-\-primary_slurmctld_failure \\ \-\-program=/usr/sbin/primary_slurmctld_failure .fi .TP اجرای برنامه "/usr/sbin/slurm_admin_notify" هر زمان که هر گره‌ای در کلاستر از کار بیفتد (down شود). موضوع ایمیل شامل نام گره‌هایی خواهد بود که وارد وضعیت down شده‌اند (توسط Slurm به عنوان آرگومان به اسکریپت ارسال می‌شود). .IP .nf $ cat /usr/sbin/slurm_admin_notify #!/bin/bash # Submit trigger for next event strigger \-\-set \-\-node \-\-down \\ \-\-program=/usr/sbin/slurm_admin_notify # Notify administrator using by e\-mail /bin/mail slurm_admin@site.com \-s NodesDown:$* $ strigger \-\-set \-\-node \-\-down \\ \-\-program=/usr/sbin/slurm_admin_notify .fi .TP اجرای برنامه "/usr/sbin/slurm_suspend_node" هر زمان که هر گره‌ای در کلاستر دست‌کم به مدت ۶۰۰ ثانیه در وضعیت بیکار (idle) باقی بماند. .IP .nf $ strigger \-\-set \-\-node \-\-idle \-\-offset=600 \\ \-\-program=/usr/sbin/slurm_suspend_node .fi .TP اجرای برنامه "/home/joe/clean_up" هنگامی که ۱۰ دقیقه تا رسیدن کار 1234 به محدودیت زمانی‌اش باقی مانده باشد. .IP .nf $ strigger \-\-set \-\-jobid=1234 \-\-time \-\-offset=\-600 \\ \-\-program=/home/joe/clean_up .fi .TP اجرای برنامه "/home/joe/node_died" هنگامی که هر گره اختصاص‌یافته به کار 1234 وارد وضعیت DOWN شود. .IP .nf $ strigger \-\-set \-\-jobid=1234 \-\-down \\ \-\-program=/home/joe/node_died .fi .TP نمایش تمام تریگرهای مرتبط با کار 1235. .IP .nf $ strigger \-\-get \-\-jobid=1235 TRIG_ID RES_TYPE RES_ID TYPE OFFSET USER PROGRAM 123 job 1235 time \-600 joe /home/bob/clean_up 125 job 1235 down 0 joe /home/bob/node_died .fi .TP حذف تریگر رویداد 125. .IP .nf $ strigger \-\-clear \-\-id=125 .fi .TP اجرای /home/joe/job_fini پس از اتمام کار 1237. .IP .nf $ strigger \-\-set \-\-jobid=1237 \-\-fini \-\-program=/home/joe/job_fini .fi.SH "کپی‌رایت و تکثیر (COPYING)" Copyright (C) 2007 The Regents of the University of California. تولیدشده در Lawrence Livermore National Laboratory (ر.ک. DISCLAIMER). .br Copyright (C) 2008\-2010 Lawrence Livermore National Security. .br Copyright (C) 2010\-2022 SchedMD LLC. .LP این فایل بخشی از Slurm، یک برنامه مدیریت منابع است. برای جزئیات، را ببینید. .LP نرم‌افزار Slurm یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «پروانه عمومی همگانی گنو» (GNU General Public License) همان‌گونه که توسط «بنیاد نرم‌افزارهای آزاد» (Free Software Foundation) منتشر شده است، بازتوزیع کرده یا تغییر دهید؛ چه نسخه ۲ پروانه، یا (به انتخاب خودتان) هر نسخه بالاتری از آن. .LP نرم‌افزار Slurm با این امید توزیع شده است که مفید باشد، اما بدون هیچ‌گونه ضمانت؛ حتی بدون ضمانت ضمنی قابلیت فروش یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر «پروانه عمومی همگانی گنو» را ببینید. .SH "همچنین ببینید (SEE ALSO)" \fBscontrol\fR(1), \fBsinfo\fR(1), \fBsqueue\fR(1)