אנגליתצרפתיתספרדי

הפעל שרתים | Ubuntu > | Fedora > |


סמל OnWorks

with-lock-ex - מקוון בענן

הפעל עם נעילה-אקס בספק אירוח חינמי של OnWorks על אובונטו אונליין, פדורה אונליין, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

זוהי הפקודה with-lock-ex שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


with-lock-ex - לוקר קבצים

תַקצִיר


עם נעילה-אקס -w|-q|-f קובץ נעילה הפקודה טוען ...

תיאור


with-lock-ex יפתח וינעל את ה-lockfile לכתיבה ולאחר מכן יזין את השאר
הטיעונים שלה ל Exec(2); כאשר התהליך הזה יסתיים ה-fd ייסגר והקובץ
נפתח אוטומטית על ידי הקרנל.

אם הקובץ לא קיים הוא נוצר, עם הרשאות rw עבור כל כיתת משתמש עבור
שיש ל-umask w.

אפשרויות


-w המתן עד שהמנעול יהיה זמין.

-f נכשל (הדפסת הודעה ל-stderr ויציאה מ-255) אם לא ניתן לרכוש את המנעול
מיד כי יש את זה בתהליך אחר.

-q אל תעשה דבר בשקט (כלומר, צא מ-0 במקום לבצע את התהליך שצוין) אם
לא ניתן לרכוש את המנעול באופן מיידי כי יש את זה בתהליך אחר.

לֹא טָרִי מנעולים


פרוטוקול הנעילה בו נעשה שימוש אינו סובל ממנעולים מיושנים. אם המנעול לא יכול להיות
נרכש, תהליכים פועלים אחד או יותר חייבים להחזיק כעת את המנעול; אם המנעול צריך
להשתחרר צריך להרוג את התהליכים האלה.

בשום פנים ואופן אין להפעיל 'מנקה מנעולים מעופשים' עבודות קרון וכדומה.
במערכות שבהן עשויים להתקיים הרבה מאוד מנעולים, ניתן להסיר קבצי מנעולים ישנים מ-cron but
רק אם כל מנעול נרכש לפני הסרת קובץ המנעול, למשל עם

עם נעילה-אקס -q קובץ נעילה rm קובץ נעילה

מבוי סתום


אין זיהוי מבוי סתום. במערכת עם מספר מנעולים, היררכיית מנעולים צריכה
להקים, כך שלכל זוג מנעולים A ו B שתהליך עשוי לנעול
גם בו זמנית A>B or B>A כאשר היחס > הוא טרנזיטיבי ולא מחזורי.

לאחר מכן, עבור כל שני מנעולים X ו Y עם X>Y אסור לרכוש X תוך החזקה Y.
במקום זאת, לרכוש X תחילה, או שחרור Y לפני (מחדש) רכישה X ו Y בסדר הזה.

(ישנן דרכים מסובכות יותר להימנע ממבוי סתום, אבל היררכיית מנעולים היא פשוטה
להבין וליישם. אם זה לא עונה על הצרכים שלך, עיין בספרות.)

נְעִילָה נוהל


פרוטוקול הנעילה בשימוש על ידי עם נעילה-אקס הוא כדלקמן:

המנעול מוחזק על ידי תהליך (או קבוצת תהליכים) המחזיק מנעול בלעדי של fcntl
בבייט הראשון של הקובץ הרגיל בעל השם שצוין. מחזיק של המנעול
(ורק בעל המנעול) רשאי למחוק את הקובץ או לשנות את האינוד שאליו השם
מתייחס, וברגע שהוא עושה זאת הוא מפסיק להחזיק את המנעול.

כל תהליך עשוי ליצור את הקובץ אם הוא לא קיים. אין צורך בקובץ
מכילים נתונים ממשיים. ואכן, למעשה השימוש בקובץ לאחסון נתונים הוא חזק
לא מומלץ, מכיוון שהדבר יחסל את רוב האסטרטגיות לעדכון אמין. תשתמש ב
קובץ נעילה נפרד במקום זאת.

היכולת להשיג את המנעול תואמת הרשאת כתיבה על הקובץ (וכמובן
הרשאה ליצור את הקובץ, אם הוא עדיין לא קיים). עם זאת, תהליכים עם
רק הרשאת קריאה בקובץ יכולה למנוע את רכישת המנעול כלל; לָכֵן
קבצי נעילה בדרך כלל לא צריכים להיות קריאים בעולם.

כאשר (קבוצה של) תהליכים מעוניינת לרכוש את המנעול, היא צריכה לפתוח את הקובץ (עם
O_CREAT) ונעל אותו עם fcntl(2) F_RWLCK, פעולה F_SETLK or F_SETLKW. אם זה
אם יצליח, זה אמור להגדיר את מתאר הקובץ שיש לו, ואת הקובץ לפי הנתיב שלו. אם ה
התקן ואינוד תואמים אז המנעול נרכש ונשאר נרכש עד זה
קבוצת תהליכים משנה לאיזה קובץ השם מתייחס, מוחקת את הקובץ או משחררת
נעילת fcntl. אם לא, תהליך אחר רכש את המנעול ומחק את
להגיש בינתיים; כעת עליך לסגור את מתאר הקובץ ולהתחיל מחדש. עם מנעול-
ex עוקב אחר מפרט זה.

שים לב כי פלוק(2) הוא סוג אחר של מנעול fcntl(2). עם נעילה-אקס שימושים fcntl.

השתמש with-lock-ex באינטרנט באמצעות שירותי onworks.net


Ad


Ad