זוהי מגבלת זמן הפקודה שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
מגבלת זמן - להגביל למעשה את זמן הביצוע המוחלט של תהליך
תַקצִיר
מגבלת זמן [-pq] [-S קילסיג] [-s אזהרה] [-T להרוג זמן] [-t זמן אזהרה] הפקודה
[טיעונים ...]
תיאור
השמיים מגבלת זמן כלי השירות מבצע נתון הפקודה עם המסופק טיעונים ומסתיים
התהליך שנוצר לאחר זמן נתון עם אות נתון. אם התהליך יוצא לפני ה
מגבלת הזמן חלפה, מגבלת זמן גם ייצא בשקט.
אפשרויות:
-p אם תהליך הילד מסתיים על ידי אות, מגבלת זמן מפיץ את המצב הזה,
כלומר שולח את אותו האות לעצמו. זה מאפשר את הפעלת התוכנית מגבלת זמן
כדי לקבוע אם תהליך הילד הופסק על ידי אות או יצא בפועל
עם קוד יציאה גדול מ-128.
-q פעולה שקטה - מגבלת זמן אינו מוציא הודעות אבחון לגבי אותות שנשלחו
לתהליך הילד.
-S קילסיג
ציין את מספר האות שיישלח לתהליך להרוג זמן שניות אחרי
זמן אזהרה פג תוקף. ברירת המחדל היא 9 (SIGKILL).
-s אזהרה
ציין את מספר האות שיישלח לתהליך זמן אזהרה שניות אחריו
התחיל. ברירת המחדל היא 15 (SIGTERM).
-T להרוג זמן
ציין את זמן הביצוע המקסימלי של התהליך לפני השליחה קילסיג לאחר
אזהרה נשלח. ברירת המחדל היא 120 שניות.
-t זמן אזהרה
ציין את זמן הביצוע המרבי של התהליך בשניות לפני השליחה אזהרה.
ברירת המחדל היא 3600 שניות.
במערכות התומכות ב setitimer(2) שיחת מערכת, ה זמן אזהרה ו להרוג זמן ערכים עשויים
יצוין בשברירי שניות בדיוק של מיקרו-שניות.
הסביבה
KILLSIG
השמיים קילסיג להשתמש אם -S האפשרות לא צוינה.
להרוג זמן
השמיים להרוג זמן להשתמש אם -T האפשרות לא צוינה.
WARNSIG
השמיים אזהרה להשתמש אם -s האפשרות לא צוינה.
זמן אזהרה
השמיים זמן אזהרה להשתמש אם -t האפשרות לא צוינה.
יְצִיאָה סטָטוּס
אם תהליך הילד יוצא כרגיל, ה מגבלת זמן כלי השירות יעביר את קוד היציאה שלו למעלה.
אם תהליך הילד מסתיים על ידי אות ו- -p הדגל לא צוין, ה
מגבלת זמן מצב היציאה של השירות הוא 128 בתוספת מספר האות, בדומה ל sh(1). אם ה -p
דגל צוין, ה מגבלת זמן השירות יעלה את האות עצמו כך שלו
תהליך האב עשוי בתורו להבחין באופן אמין בין אות ליציאה גדולה מ-128
קוד.
במקרים נדירים, מגבלת זמן כלי השירות עלול להיתקל בשגיאת מערכת או משתמש; לאחר מכן, היציאה שלו
סטטוס הוא אחד מהסטנדרטים sysexits(3) ערכים:
EX_USAGE
הפרמטרים והאפשרויות של שורת הפקודה צוינו באופן שגוי.
EX_SOFTWARE
השמיים מגבלת זמן כלי השירות עצמו קיבל אות בלתי צפוי בזמן ההמתנה ל-
תהליך הילד להסתיים.
EX_OSERR
השמיים מגבלת זמן כלי השירות לא הצליח לבצע את תהליך הצאצא, המתן שיעשה זאת
לסיים, או לבחון את מצב היציאה שלו.
דוגמאות
הדוגמאות הבאות מוצגות כפי שניתנו למעטפת:
timelimit -p /usr/local/bin/rsync rsync://some.host/dir /opt/mirror
הפעל את תוכנית rsync כדי לשקף אתר WWW או FTP ולהרוג אותו אם הוא פועל יותר משעה
(כלומר 3600 שניות) עם SIGTERM. אם תהליך rsync לא יוצא לאחר קבלת ה-
SIGTERM, מגבלת זמן מנפיק SIGKILL 120 שניות לאחר ה-SIGTERM. אם תהליך rsync הוא
מסתיים על ידי אות, מגבלת זמן יעלה בעצמו את האות הזה.
מגבלת זמן tcpserver 0 8888 -t600 -T300 /opt/services/chat/stats
התחל תהליך tcpserver(n) האזנה ביציאת tcp 8888; כל חיבור לקוח יפעיל
מופע של כלי סטטיסטיקה IRC תחת /opt/services/chat ולהרוג אותו לאחר 600 שניות
חלפו. אם תהליך הסטטיסטיקה עדיין פועל לאחר ה-SIGTERM, הוא יהרוג על ידי
SIGKILL נשלח 300 שניות מאוחר יותר.
env WARNTIME=4.99 WARNSIG=1 KILLTIME=1.000001 מגבלת זמן sh stats.sh
התחל תסריט מעטפת והרוג אותו עם SIGHUP תוך קצת פחות מ-5 שניות. אם הקליפה
נתקע ולא מגיב ל-SIGHUP, תהרוג אותו עם ברירת המחדל SIGKILL רק קצת
למעלה משנייה לאחר מכן.
השתמש במגבלת זמן מקוונת באמצעות שירותי onworks.net