זוהי הפקודה rstartd שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
rstartd - יישום לדוגמה של Remote Start rsh helper
תַקצִיר
rstartd
rstartd.real [-ג שם תצורה]
תיאור
Rstartd הוא יישום של "עוזר" של התחל מרחוק כהגדרתו ב"שלט גמיש
פרוטוקול ביצוע מבוסס על רש".
מסמך זה מתאר את המוזרויות של rstartd ואיך הוא מוגדר.
אפשרויות
-c שם תצורה
אפשרות זו מציינת את קובץ התצורה ה"גלובלי" ש rstartd הוא לקרוא.
בדרך כלל, rstartd הוא סקריפט מעטפת שמפעיל rstartd.real עם -c מתג,
המאפשר תצורה מקומית של מיקום קובץ התצורה. אם
rstartd.real מופעל ללא אפשרות -c, הוא קורא /X11/rstart/config.
התקנה
זה קריטי לפעולה הדדית מוצלחת של פרוטוקול התחל מרחוק rstartd be
מותקן בספרייה שנמצאת בנתיב החיפוש "ברירת המחדל", כך ש-rsh ברירת המחדל
בקשות ודומיהם יוכלו למצוא אותו.
תְצוּרָה ו פעולה
Rstartd בעיצובו ניתן להגדרה גבוהה. אחד היה רוצה דברים כמו קובץ תצורה
מיקומים שיש לתקן, כך שמשתמשים ומנהלי מערכת יוכלו למצוא אותם מבלי לחפש,
אבל המציאות היא ששני ספקים לא יסכימו לאן הדברים צריכים ללכת, ואף אחד לא חושב
המיקום המקורי הוא "נכון". לכן, rstartd מאפשר לעבור דירה את כל מהקבצים שלה
וספריות.
Rstartd יש היררכיה של קבצי תצורה אשר מבוצעים לפי הסדר בעת בקשה
עשוי. הם:
תצורה גלובלית
תצורה לכל משתמש ("מקומי")
תצורה גלובלית לפי הקשר
פר-משתמש ("מקומי") פר-הקשר
תצורה מהבקשה
כפי שאתה יכול לנחש מהנוכחות של "config from request", כל קבצי התצורה הם
בפורמט של an התחל בַּקָשָׁה. Rstartd מגדיר כמה מילות מפתח נוספות עם ה
INTERNAL- קידומת לציון התצורה שלו.
Rstartd מתחיל בקריאה וביצוע של קובץ התצורה הגלובלי. קובץ זה יהיה בדרך כלל
ציין את המיקומים של קבצי התצורה האחרים וכל ברירת המחדל של המערכת.
Rstartd לאחר מכן יקרא את קובץ התצורה המקומי של המשתמש, שם ברירת המחדל $HOME/.rstart.
Rstartd לאחר מכן יתחיל לפרש את הבקשה.
יש להניח שאחת מהשורות הראשונות בבקשה תהיה שורת CONTEXT. שם ההקשר
מומר לאותיות קטנות.
Rstartd יקרא את קובץ התצורה הגלובלי עבור ההקשר הזה, שם ברירת המחדל
/usr/lib/X11/rstart/contexts/ , אם בכלל.
לאחר מכן הוא יקרא את קובץ התצורה של המשתמש עבור ההקשר הזה, שם ברירת המחדל
$HOME/.rstart.contexts/ , אם בכלל.
(אם אף אחד מאלה לא קיים, rstartd מבטל עם הודעת כישלון.)
Rstartd יסיים לפרש את הבקשה, ויבצע את התוכנית שצוינה.
זה מאפשר למנהל המערכת ולמשתמש מידה רבה של שליטה על
תפעול של rstartd. למנהל יש את המילה האחרונה, בגלל קובץ התצורה הגלובלי
אין צורך לציין קובץ תצורה לכל משתמש. אם כן, המשתמש יכול
לעקוף כל דבר מהקובץ הגלובלי, ואף יכול להחליף לחלוטין את ההקשר הגלובלי
קבצי תצורה.
לקבצי התצורה יש פורמט קצת יותר גמיש ממה שיש לבקשות; מותר להם
כדי להכיל שורות ריקות ושורות המתחילות ב-"#" הן הערות ומתעלמים מהן. (#s ב-
אמצע השורות הם נתונים, לא סמני הערות.)
כל הפקודות המופעלות מסופקות כמה פיסות מידע שימושיות במשתני סביבה.
השמות המדויקים ניתנים להגדרה, אך ברירות המחדל המסופקות הן:
$RSTART_CONTEXT
$RSTART_GLOBAL_CONTEXTS ספריית ההקשרים הגלובלית
$RSTART_LOCAL_CONTEXTS ספריית ההקשרים המקומית
$RSTART_GLOBAL_COMMANDS ספריית הפקודות הגנריות הגלובלית
$RSTART_LOCAL_COMMANDS ספריית הפקודות הגנריות המקומיות
$RSTART_{GLOBAL,LOCAL}_CONTEXTS צריך להכיל קובץ מיוחד אחד, @List, המכיל
רשימה של ההקשרים בספרייה זו בפורמט שצוין עבור ListContexts. ה
הגרסה המסופקת של ListContexts תצלח הן את העותקים הגלובאליים והן המקומיים של @List.
מחפשים פקודות כלליות במספר מקומות: (ברירת מחדל)
ספריית לכל משתמש לפי הקשר ($HOME/.rstart.commands/ )
ספרייה גלובלית לכל הקשר (/usr/lib/X11/rstart/commands/ )
ספריית כל ההקשרים לכל משתמש ($HOME/.rstart.commands)
ספריית כל ההקשרים הגלובלית (/usr/lib/X11/rstart/commands)
(כן, זה אומר שלא תוכל לקבל פקודה גנרית של כל ההקשרים עם אותו שם כמו a
הֶקשֵׁר. זה לא נראה כמו עניין גדול.)
לכל אחת מהספריות הללו צריך להיות קובץ בשם @List שנותן את השמות ו
תיאורים של הפקודות באותה ספרייה בפורמט שצוין עבור
רשימת פקודות כלליות.
תְצוּרָה מילות מפתח
יש כמה "מיוחדים" התחל מילות מפתח שהוגדרו עבור rstartd תְצוּרָה. אֶלָא אִם
שצוין אחרת, אין ברירות מחדל; תכונות קשורות מושבתות במקרה זה.
רישומים פנימיים שם ...
נותן רשימה מופרדת ברווחים של רישום "MISC" שמערכת זו מבינה.
(רישום מלבד זה מתקבל אך מייצר אזהרה.)
פנימי-מקומי-ברירת מחדל relative_filename
נותן את השם ($HOME relative) של קובץ התצורה לכל משתמש.
הקשרים פנימיים-גלובליים absolute_directory_name
נותן את השם של ספריית ההקשרים בכל המערכת.
הקשרים פנימיים-מקומיים relative_directory_name
נותן את השם ($HOME relative) של ספריית ההקשרים לכל משתמש.
פקודות פנימיות-גלובליות absolute_directory_name
נותן את השם של ספריית הפקודות הגנריות בכל המערכת.
פקודות פנימיות-מקומיות relative_directory_name
נותן את השם ($HOME relative) של ספריית הפקודות הגנריות לכל משתמש.
INTERNAL-VARIABLE-PREFIX קידומת
נותן את הקידומת למשתני סביבת התצורה rstartd עובר אליו
ילדים.
תוכנית סמכות פנימית authscheme התוכנית argv[0] argv[1] ...
מציין את התוכנית להפעלה כדי להגדיר אימות עבור הנתון שצוין
ערכת אימות. "program argv[0] ..." נותן לתוכנית לרוץ ושלה
ארגומנטים, באותה צורה כמו מילת המפתח EXEC.
קלט פנימי authscheme
מציין את הנתונים שיינתנו לתוכנית ההרשאה כקלט הסטנדרטי שלה.
כל ארגומנט מועבר כשורה אחת. $n, כאשר n הוא מספר, מוחלף ב
הארגומנט ה-N' לשורה "AUTH authscheme arg1 arg2 ...".
הדפסה פנימית שרירותי טֶקסט
מדפיס את הארגומנטים שלו כהודעת Debug. בעיקר בשביל rstartd ניפוי באגים, אבל יכול
לשמש לאיפוי באגים בקבצי תצורה.
אורים
בעת שימוש במעטפת C, או כל מעטפת אחרת שמריצה סקריפט בכל פעם שהמעטפת נמצאת
התחיל, ייתכן שהסקריפט יופעל מספר פעמים. במקרה הגרוע, הסקריפט עלול להפעיל
שְׁלוֹשָׁה פִּי:
לפי rsh, לרוץ rstartd
By rstartd, כדי להפעיל את הפקודה שצוינה
לפי הפקודה, למשל x מונח
rstartd כרגע מגביל שורות, הן מקבצי תצורה והן מבקשות, ל-BUFSIZ בתים.
DETACH מיושם על ידי הפניית מתארי קבצים 0,1 ו-2 ל-/dev/null ו-forking
לפני הפעלת התוכנית.
CMD מיושם על ידי הפעלת $SHELL (ברירת מחדל / Bin / sh) עם "-c" והמצוין
פקודה כטיעונים.
POSIX-UMASK מיושם בצורה הברורה.
תוכניות ההרשאה מופעלות באותו הקשר כמו תוכנית היעד - זהה
משתני סביבה, נתיב וכו'. לטווח ארוך זו עשויה להיות בעיה.
בהקשר X, GENERIC-CMD Terminal מריץ את xterm. בהקשר של OpenWindows, GENERIC-
CMD Terminal מריץ cmdtool.
בהקשר X, GENERIC-CMD LoadMonitor מריץ xload. בהקשר של OpenWindows,
GENERIC-CMD LoadMonitor מפעיל perfmeter.
GENERIC-CMD ListContexts מפרט את התוכן של @List גם בכל המערכת וגם בכל משתמש
ספריות הקשרים. זה זמין בכל ההקשרים.
GENERIC-CMD רשימת פקודות כלליות מפרט את התוכן של @List בכל המערכת ובכל-
ספריות פקודות משתמש, כולל ספריות המשנה לפי הקשר עבור הנוכחי
הֶקשֵׁר. זה זמין בכל ההקשרים.
קונטקסט ללא חתימה אינו מיושם.
קונטקסט בְּרִירַת מֶחדָל ממש משעמם.
כדי להקל על ההתקנה, ספריית "הקשרים" בהפצה מכילה קובץ
"@Aliases" המפרט שם הקשר וכינויים עבור הקשר זה. הקובץ הזה רגיל
צור קישורים סימליים בספריות ההקשרים והפקודות.
תעשיות MISC ערכים מועברים ללא שינוי כמשתני סביבה.
אפשר להתעלל rstartd בכל מספר דרכים, וכתוצאה מכך כל דבר מהתנהגות מטופשת
למזבלות הליבה. מלבד הפעלת תוכנות באופן מפורש, אני לא חושב שזה יכול לכתוב או
למחוק קבצים, אבל אין שום ערובה לכך. הדבר החשוב הוא ש(א) זה
כנראה לא יעשה שום דבר ממש טיפשי ו(ב) זה פועל עם הרשאות המשתמש, אז
זה לא יכול לעשות שום דבר קטסטרופלי.
קבצי @List אינם צריכים להיות מלאים; הקשרים או פקודות שהם עמומים או שאינם צריכים או
לא צריך לפרסם לא צריך להיות רשום. בפרט, קבצי @List לכל משתמש צריכים
לא רשום דברים שנמצאים בקבצי @List ברחבי המערכת. בעתיד, אולי
ListContexts ו- ListGenericCommands ידכאו באופן אוטומטי שורות מהמערכת-
קבצים רחבים כאשר יש תחליפים לכל משתמש עבור שורות אלה.
טיפול בשגיאות בסדר עד חלש. בפרט, לא נעשה ניסיון לדווח כראוי על שגיאות
על המנהל עצמו. (להפך, ניתן היה לדווח באופן מהימן על שגיאות הפעלה בעת ניתוק,
אבל לא כאשר מעבירים את שקע stdin/out לאפליקציה.)
אם הידור עם -DODT1_DISPLAY_HACK, rstartd יעקוף באג בגרסה 1 של SCO ODT.
(1.1?) (הבאג הוא שלקוחות X כולם מורכבים עם ספרייה גרועה שלא
לדעת איך לחפש שמות מארחים באמצעות DNS. התיקון הוא לחפש שם מארח ב-$DISPLAY
ותחליף כתובת IP.) זוהי דוגמה טריוויאלית לחוסר תאימות ש
התחל יכול להסתיר.
השתמש ב-rstartd באינטרנט באמצעות שירותי onworks.net