זהו הפקודה procServ שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
procServ - שרת תהליכים עם מסוף Telnet וגישה ללוג
תַקצִיר
procServ [אפשרויות] נמל הפקודה ארגונים...
תיאור
procServ(1) יוצר סביבת זמן ריצה עבור פקודה (למשל IOC רך). זה מזלג א
שרת פועל כדמון ברקע, מה שיוצר תהליך צאצא הפועל הפקודה
עם כל השאר טוען משורת הפקודה. השרת מספק גישה למסוף
(stdin/stdout) לתהליך הילד על ידי הצעת חיבור telnet ביציאה שצוינה.
מטעמי אבטחה, כברירת מחדל, הגישה מוגבלת לחיבורים מ-localhost
(127.0.0.1), כך שנדרשת כניסה לחשבון חוקי במחשב המארח.
ניתן להגדיר את procServ לכתוב יומן מסוף של כל הקלט והפלט של הילד
תהליך לקובץ באמצעות ה -L (--קובץ לוג) אפשרות. שליחת האות SIGHUP ל-
השרת יגרום לו לפתוח מחדש את קובץ היומן. כדי להקל על הריצה מתחת לקונסולה מרכזית
ניהול גישה (כמו conserver), ה -l (--logportאפשרות ) יוצרת טלנט נוסף
port, שהוא כברירת מחדל ציבורי (כלומר לא מוגבל ל-localhost), ומספק
גישת יומן לקריאה בלבד למסוף של הילד. ה -r (--לְהַגבִּילאפשרות ) מגבילה את היומן
יציאה ל-localhost, בדומה ליציאת הגישה.
גם יציאות גישה וגם יציאות יומן מאפשרות מספר חיבורים, המטופלים בשקיפות: כולם
קלט מחיבורי גישה מועבר לתהליך הילד, כל הפלט מהילד
מועבר לכל חיבורי הגישה והיומן (ונכתב לקובץ היומן). את כל
הודעות אבחון מתהליך השרת מתחילות ב-"@@@" כדי להבחין בבירור
מהודעות עיבוד ילדים. שם שצוין על ידי -n (--שֵׁם) אפשרות תחליף את
מחרוזת פקודה בהודעות רבות להגברת הקריאה.
השרת כברירת מחדל יפעיל מחדש את תהליך הצאצא כאשר הוא ימות. להתחמק
מסתובב, זמן מינימלי בין התחלות מחדש של תהליך הילד מתקיים (ברירת מחדל: 15 שניות,
ניתן לשנות באמצעות --להדוף אוֹפְּצִיָה). ניתן לשנות התנהגות זו באופן מקוון באמצעות ה
פקודת toggle ^T, ניתן לשנות את ברירת המחדל באמצעות ה- --לא הפעלה מחדש אוֹפְּצִיָה. אתה יכול
הפעל מחדש ילד פועל באופן ידני על ידי שליחת אות לתהליך הילד באמצעות ה-kill
פקודה ^X. עם כיבוי של תהליך הילד, השרת מקבל שתי פקודות: ^R או
^X כדי להפעיל מחדש את הילד, ו-^Q כדי לצאת מהשרת. ה -w (--לַחֲכוֹת) אפשרות מתחילה את
שרת במצב כיבוי זה, ממתין לחיבור Telnet כדי לבצע הפעלה ידנית
פקודה ליצירת הילד.
ניתן לנתק כל חיבור Telnet (בקרה או יומן) באמצעות הניתוק של הלקוח
סדר פעולות. ניתן לנתק את חיבורי הבקרה גם על ידי שליחת פקודת ההתנתקות
תו, שניתן לציין באמצעות ה- -x (--logoutcmd).
כדי לחסום תווי קלט שעלולים להיות מסוכנים לילד (למשל ^D ו-^C on
IOCs רך), ה -i (--להתעלםניתן להשתמש באפשרות ) כדי לציין תווים שהם בשקט
התעלמו כאשר מגיעים מיציאת גישה למסוף.
כדי להקל על ההפעלה והעצירה כשירות מערכת סטנדרטי, ה -p (--pidfile)
אפשרות אומרת לשרת ליצור קובץ PID סטנדרטי המכיל את ה-PID של השרת
התהליך.
השמיים -d (--לנפותאפשרות ) מריץ את השרת במצב ניפוי באגים: תהליך הדמון נשאר ב-
חזית, הדפסת כל תוכן היומן הרגיל בתוספת הודעות ניפוי באגים נוספות ל-stdout.
אפשרויות
--להתיר
אפשר חיבורי שליטה מכל מקום. (ברירת מחדל: הגבלת גישת שליטה ל
localhost.) יוצר חור אבטחה רציני, כפי שלקוחות Telnet מכל מקום יכולים
התחבר ל-stdin/stdout של הילד ובצע פקודות שרירותיות על המארח, אם
אישורי ילדים. צריך להיות מופעל בזמן ההידור (ראה Makefile). בבקשה אל
אפשר והשתמש באפשרות זו אלא אם כן אתה יודע בדיוק למה ומה אתה עושה.
--autorestartcmd=char
החלף את הדגל של הפעלה מחדש אוטומטית כאשר char נשלח בחיבור גישה. השתמש ב-^ כדי לציין א
תו שליטה, "" כדי להשבית. ברירת המחדל היא ^T.
-- גודל ליבה=גודל
הגדר את המקסימום גודל של קובץ הליבה. לִרְאוֹת getrlimit(2) תיעוד לפרטים. הגדרה
גודל עד 0 ימנע מהילד ליצור קבצי ליבה.
-ג, --chdir=dir
שנה את הספרייה ל dir לפני תחילת הילד. זה נעשה בכל פעם שהילד נמצא
התחילו לוודא שקישורים סמליים פתורים בהפעלה מחדש של הילד.
-ד, --לנפות
היכנס למצב ניפוי באגים. מצב ניפוי באגים ישאיר את תהליך השרת בחזית ו
מאפשר הודעות אבחון שיישלחו למסוף השולט.
, --exec=פילה
הפעלה פילה כקובץ הפעלה לילד. ברירת המחדל היא הפקודה.
-ו, --חֲזִית
שמור את תהליך השרת בחזית ומחובר למסוף השולט.
-ח, - עזרה
הדפס הודעת עזרה.
--להדוף=n
חכה לפחות n שניות בין ניסיונות הפעלה מחדש של הילד. ברירת המחדל היא 15 שניות.
-אני, --להתעלם=טנקים
התעלם מכל הדמויות ב טנקים על חיבורי גישה. זה יכול לשמש כדי להגן על
תהליך ילד מתווי קלט שעלולים להיות מסוכנים, למשל ^D ו-^C
דמויות שישביתו IOC רך. השתמש ב-^ כדי לציין תווי בקרה, ^^ כדי
ציין תו ^ בודד.
-ק, --killcmd=char
הרוג את תהליך הילד (ילד יופעל מחדש אוטומטית כברירת מחדל) כאשר char is
נשלח בחיבור גישה. השתמש ב-^ כדי לציין תו בקרה, "" ללא הרג
פקודה. ברירת המחדל היא ^X.
--קילסיג=אוֹת
הרוג את הילד באמצעות אוֹת בעת קבלת פקודת ההרוג. ברירת המחדל היא 9 (SIGKILL).
-ל, --logport=נמל
ספק גישת קריאה בלבד למסוף של הילד מופעל נמל. כברירת מחדל, כל המארחים יכולים
להתחבר ל נמל, להשתמש ב -r (--לְהַגבִּיל) אפשרות להגביל את הגישה ל-localhost.
-ל, --קובץ לוג=פילה
כתוב יומן מסוף של כל הכניסות והפלט אליו פילה.
--logstamp[=fmt]
קווי קידומת ביומנים עם חותמת זמן, הגדרת מחרוזת פורמט חותמת הזמן ל fmt.
ברירת המחדל היא "[ ] ". (ראה --timefmt אוֹפְּצִיָה.)
-נ, --שֵׁם=כותרת
בכל הודעות השרת, השתמש כותרת במקום שורת הפקודה המלאה כדי להגדיל
קְרִיאוּת.
--לא הפעלה מחדש
אל תפעיל מחדש אוטומטית תהליך צאצא ביציאה.
-פ, --pidfile=פילה
כתוב את ה-PID של תהליך השרת לתוך פילה כדי להקל על השילוב ברגיל
מנגנוני ניהול שירותי מערכת.
--timefmt=fmt
הגדר את מחרוזת הפורמט המשמשת להדפסת חותמות זמן fmt. ברירת המחדל היא "%c". (לִרְאוֹת
זמן אחסון(3) תיעוד לפרטים.)
-q, --שֶׁקֶט
אל תכתוב פלט מידע (שרת). מונע לעמוס את המסך בעת ריצה כמו
חלק מתסריט מערכת.
--לְהַגבִּיל
הגבל חיבורי יומן ל-localhost.
-V, --גִרְסָה
גרסת תוכנית הדפסה.
-וו, --לַחֲכוֹת
אין להתחיל את הילד מיד. במקום זאת, המתן לחיבור Telnet ומדריך
התחל פקודה.
-איקס, --logoutcmd=char
התנתק (סגור חיבור לקוח) כאשר char נשלח בחיבור גישה. השתמש ב-^ כדי
ציין תו בקרה. ברירת המחדל ריקה.
נוהג
כדי להפעיל IOC רך באמצעות procServ, שנה את הספרייה לספריית האתחול של IOC. א
שורת פקודה טיפוסית תהיה
procServ -n "My SoftIOC" -i ^D^C 20000 ./st.cmd
כדי להתחבר ל-IOC, היכנס למארח ה-IOC הרך והתחבר ליציאה 20000 באמצעות
20000
כדי להתחבר ממכונה מרוחק, ssh לחשבון משתמש ב-procservhost והתחבר אל
יציאה 20000 באמצעות
ssh -t user@procservhost telnet localhost 20000
תהיו מחוברים לקונסולת IOCs הרכה ותקבלו הודעת קבלת פנים אינפורמטיבית.
כל הפלט משרת procServ יתחיל ב-"@@@" כדי לאפשר להבדיל ממנו
הודעות שה-IOC שלך שולח.
> telnet localhost 20000
מנסה 127.0.0.1 ...
מחובר למארח מקומי.
תו בריחה הוא '^]'.
@@@ ברוכים הבאים לשרת התהליך procServ (ProcServ גרסה 2.1.0)
@@@ השתמש ב-^X כדי להרוג את הילד, הפעלה מחדש אוטומטית מופעלת, השתמש ב-^T כדי להחליף את ההפעלה האוטומטית
@@@ PID של שרת procServ: 21413
@@@ ספריית אתחול: /projects/ctl/lange/epics/ioc/test314/iocBoot/iocexample
@@@ הילד "My SoftIOC" התחיל בתור: ./st.cmd
@@@ ילד "My SoftIOC" PID: 21414
@@@ שרת procServ התחיל ב: שישי 25 באפריל 16:43:00 2008
@@@ הילד "My SoftIOC" התחיל ב: שישי 25 באפריל 16:43:00 2008
@@@ 0 משתמשים ו-0 לוגר/ים מחוברים (פלוס אתה)
הקלד את תו הפקודה להרוג ^X כדי לאתחל את ה-IOC הרך ולקבל הודעות שרת לגבי
הפעולה הזו.
הקלד את תו ה-telnet escape ^] כדי לחזור להנחיה של telnet ואז "צא" כדי לצאת
telnet (ו-ssh כאשר התחברת מרחוק).
למרות ש-procServ נועד במקור להיות סביבה להפעלת IOCs רך, כל תהליך
עשוי להתחיל כילד. הוא מספק סביבה לכל תוכנית הדורשת גישה
לקונסולה שלו, תוך כדי ריצה ברקע בתור דמון, ושמירה על יומן על ידי כתיבה
קובץ או דרך מתקן גישה למסוף ורישום (כגון שומר).
הסביבה וריאציות
PROCSERV_PID
מגדיר את שם הקובץ לכתיבת ה-PID של תהליך השרת. (לִרְאוֹת -p אוֹפְּצִיָה.)
PROCSERV_DEBUG
אם מוגדר, procServ מתחיל במצב ניפוי באגים. (לִרְאוֹת -d אוֹפְּצִיָה.)
ידוע בעיות
אף אחד עד כה.
דיווח באגים
דווח על באגים ב-procServ Trac בכתובת http://sourceforge.net/apps/trac/procserv/ או אל
מחברים.
מחברים
נכתב על ידי דייוויד ה. תומפסון[מוגן בדוא"ל]> וראלף לאנג[מוגן בדוא"ל]>.
מקורות
פרויקט SourceForge: http://sourceforge.net/projects/procserv/
העתקה
כל זכויות היוצרים שמורות. שימוש חופשי בתוכנה זו מוענק על פי תנאי ה-GNU
רישיון ציבורי כללי (GPLv3).
השתמש ב-procServ באופן מקוון באמצעות שירותי onworks.net