14.1 Getty (בשימוש ב / etc / inittab)
מבוא לגטי
כדי להפעיל את תהליך הכניסה על יציאה טורית (וגם את הטרמינל המחובר אליו) כאשר המחשב מתחיל (או בורר רמות לרוץ) פקודה getty יש לשים את / etc / קובץ inittab. הפעלת getty משורת הפקודה עלולה לגרום לבעיות (ראה אם getty לרוץ משורת הפקודה: תוכניות נעצר כדי לראות מדוע). Getty מקבל TTY (מסוף) הולך. כל מסוף צריך פקודת getty שלו. יש גם לפחות אחד הפקודה getty עבור המסוף בכל / etc / קובץ inittab. מצא את זה ולשים את פקודות getty עבור מסופי אמיתי ליד זה. קובץ זה עשוי להכיל קווי getty לדוגמה עבור מסופי טקסט כי הם הגיבו כך שכל מה שאתה צריך לעשות הוא uncomment אותם (להסיר את המוביל #) ולשנות כמה טיעונים.
הטיעונים המותרים תלויים באיזה gty אתה משתמש:שני הכי טובים עבור מסופים מחוברים ישירות הם: שני gettys הטוב ביותר עבור מודמים חיוג (למנוע עבור מסופים מחוברים ישירות) הם: פשוט gettys להשתמש אם אתה לא משתמש אמיתי מסוף טקסט. רוב משתמשי לינוקס משתמשים באחד מהם בצג שלהם: ההפצה לינוקס שלך יכול לבוא עם או ps_getty או agetty עבור מסופי טקסט. חלק מההפצות אינן מספקות אף הן. למרבה הצער, לעתים קרובות הם פשוט קוראים לזה "getty" אז ייתכן שיהיה עליך לקבוע איזה מהם יש לך מאז הטיעונים אתה שם אחרי זה / etc / inittab שונים. דביאן משתמשת בז'אטי (בחבילת הניו-לינוקס). RedHat ו Fedora בשימוש ps_getty אשר ב: ps_getty כמוצא אחרון כדי לנסות לקבוע איזה getty יש לך, אתה יכול לבדוק את קוד ההפעלה שלה (בדרך כלל / sbin). ps_getty יש / etc / gettydefs מוטבע בקוד זה. כדי לחפש אותו, עבור אל / sbin והקלד:מיתרים grep gty אם getty הוא agetty למעשה האמור לעיל לא יוביל דבר. עם זאת, אם יש לך הקלדת agetty:getty -hצריך להראות את האפשרויות -hiLmw. אם אין לך את getty אתה רוצה לבדוק אחרים distributions ו חייזר תוכנית להמיר בין חבילות RPM ו Debian. ניתן להוריד את קוד המקור מ- Getty Software. אם אינך משתמש בקווי בקרה מודמים (לדוגמה, אם אתה משתמש רק במספר המינימלי של 3 מוליכים: שידור, קליטה ואיתות אות משותף), עליך להודיע על כך באמצעות דגל "מקומי". הפורמט של זה תלוי באיזה gty אתה משתמש. לאחר שתתחבר תבחין (באמצעות "למעלה", "PS -ax", או "ptree") כי תהליך getty כבר לא פועל. מה קרה לזה? למה getty מחדש שוב אם פגז שלך נהרג? הנה למה. לאחר הקלדת שם המשתמש שלך, getty לוקח את זה קורא את תוכנית הכניסה אומר את שם המשתמש שלך. תהליך הגטי מוחלף בתהליך הכניסה. תהליך הכניסה מבקש את הסיסמה שלך, בודק את זה ומתחיל כל תהליך שצוין בקובץ הסיסמה שלך. תהליך זה הוא לעתים קרובות את פגז bash. אם כן, התחלה מתחילה ומחליפה את תהליך הכניסה. שים לב כי תהליך אחד מחליף אחרת וכי תהליך פגז bash במקור התחיל כתהליך getty. ההשלכות של זה יוסברו להלן. עכשיו את / etc / קובץ inittab, getty אמורה respawn (הפעלה מחדש) אם נהרג. זה אומר כך על הקו שקורא getty. אבל אם פגז bash (או את תהליך הכניסה) הוא נהרג, gettyns getty (הפעלה מחדש). למה? ובכן, הן את תהליך ההתחברות ואת bash הם תחליפים עבור getty ו לרשת * טקסט מסוף כיצד לבצע אינדקס את הקשר האותות שהוקמו על ידי קודמיהם. למעשה, אם אתה מבין את הפרטים תוכלו להבחין כי תהליך ההחלפה יהיה זהה מזהה תהליך כמו התהליך המקורי. לכן באש הוא סוג של getty בתחפושת עם אותו תהליך מזהה מספר. אם באש הוא נהרג זה בדיוק כמו גטי נהרג (למרות getty אינו פועל יותר). זה התוצאות gettyning getty. כאשר אחד יוצא החוצה, כל התהליכים על זה יציאה טורית נהרגים כולל פגז bash. הדבר עלול לקרות (אם מופעל) אם אות השלג נשלח ליציאה הטורית על ידי ירידה של מתח DCD על ידי המודם. או יציאה או ירידה ב DCD תביא resptyning getty. אחד יכול להכריח את getty כדי respawn ידנית על ידי הרג להרוג (או התחברות) או על ידי להכות את מקש K, וכו 'בעוד "למעלה" או עם "להרוג" הפקודה. סביר להניח שאתה צריך להרוג אותו עם אות 9 (אשר לא ניתן להתעלם). אתה צריך בדרך כלל להפעיל getty מבפנים / etc / inittab ולא משורת הפקודה או אחר תוכניות מסוימות פועל על הטרמינל עשוי להיות מושעה באופן בלתי צפוי (עצר). הנה למה (לדלג על הקטע הבא אם למה לא חשוב לך). אם אתה מתחיל getty1 לשיר ttyS1 משורת הפקודה של מסוף אחר, אומר tty1, אז זה יהיה tty1 שלה "מסוף שליטה" למרות מסוף בפועל הוא פועל על ttys1. לכן יש לו מסוף השליטה הלא נכון. אבל אם זה התחיל בתוך קובץ inittab אז זה יהיה ttys1 כמו מסוף שליטה (נכון). למרות מסוף השליטה טועה, הכניסה ב ttyS1 עובד בסדר (מאז שנתת ttyS1 כטיעון כדי getty). הקלט והפלט הסטנדרטיים מוגדרים ל - ttys1 למרות שמסוף הבקרה נשאר Tty11. תוכניות אחרות לרוץ ב ttyS1 עשוי לרשת את זה קלט / פלט רגיל (אשר מחובר ttyS1) והכל בסדר. אבל כמה תוכניות עשויות לטעות בניסיון לקרוא מן הטרמינל השליטה שלהם (tty1) וזה לא בסדר. עכשיו tty1 עשוי לחשוב כי תוכניות אלה מופעלות ברקע על ידי tty1 כך ניסיון לקרוא מ tty1 (זה היה צריך להיות ttys1) תוצאות לעצור את התהליך שניסה לקרוא. (תהליך הרקע אינו מותר לקרוא ממסוף השליטה שלו). ייתכן שתראה הודעה כגון: "1 + עצר"על המסך.בנקודה זו אתה תקוע כי אתה לא יכול לקיים אינטראקציה עם תהליך אשר מנסה לתקשר איתך דרך מסוף לא נכון.כמובן לברוח מזה אתה יכול ללכת למסוף אחר להרוג את התהליך, וכו ' . דוגמה לקו / etc / inittab:
S1 הוא מתוך tty1. 23 פירושו כי getty הוא לרוץ עם כניסה רמות 2 או 3. respawn אומר שאם getty (או תהליך שהחליף אותו כגון באש) הוא נהרג, getty באופן אוטומטי להתחיל (resawn) שוב. / sbin / getty היא הפקודה. -L פירושו מקומי (להתעלם אותות מודם שליטה). -h (לא מוצג בדוגמה) מאפשר בקרת זרימת חומרה (כמו stty crtscts). 19200 הוא קצב השידור. tty1 פירושו / dev / ttyS1 (COM2 ב- MS-DOS). vt102 הוא סוג הטרמינל ו- getty זה יגדיר את משתנה הסביבה TERM לערך זה. אין קבצי תצורה. הקלד "init q" בשורת הפקודה לאחר עריכת gty ואתה אמור לראות את בקשת הכניסה. ה אגרטי התוכנית תנסה לזהות באופן אוטומטי את זוגיות להגדיר בתוך הטרמינל (כולל לא זוגיות). הוא אינו תומך בבדיקות נתונים של 8 סיביות בתוספת זוגיות של 1 סיביות. ראה בתים של 8 סיביות נתונים (בתוספת שוויון). אם אתה משתמש stty כדי לקבוע זוגיות, אגרטי באופן אוטומטי לא להגדיר את זה מאז שהוא רוצה בהתחלה קצת זוגיות לבוא דרך כאילו היה קצת נתונים. הסיבה לכך היא כי הוא צריך לקבל את החלק האחרון (אולי קצת זוגיות) תוך כדי להקליד את שם הכניסה שלך, כך שהוא יכול לזהות באופן אוטומטי זוגיות. לכן אם אתה משתמש זוגיות, לאפשר אותו רק בתוך מסוף טקסט ולתת אגרטי אוטומטי לזהות אותו ולהגדיר אותו במחשב. אם הטרמינל שלך תומך בקבלת זוגיות, הודעת ההתחברות תיראה מסולסלת עד שתקליד משהו כך ש- getty יוכל לזהות אותו זוגיות. המהומה משובשת ירתיע מבקרים, וכו 'מ מנסה להיכנס. זה יכול להיות בדיוק מה שאתה רוצה. יש לפעמים בעיה עם זיהוי אוטומטי של זוגיות. זה קורה כי אחרי שאתה הראשון הקלד את שם המשתמש שלך, אגרטי מתחיל התחברות תוכנית כדי לסיים את הכניסה לך פנימה למרבה הצער, התחברות התוכנית לא יכולה לזהות זוגיות אז אם גטי התוכנית נכשלה כדי לקבוע את זוגיות מכן התחברות לא יוכלו לקבוע את זה גם. אם ניסיון הכניסה הראשון נכשל, התחברות יאפשר לך לנסות שוב, וכו '(כל עם שווי זוגיות שגוי). בסופו של דבר, לאחר מספר ניסיונות כושלים להתחבר (או לאחר פסק זמן) אגרטי יתחיל שוב ולהתחיל את רצפי ההתחברות מחדש. לאחר getty פועל שוב, הוא עשוי להיות מסוגל לזהות את זוגיות על הניסיון השני אז הכל יכול אז לעבוד בסדר. עם זוגיות שגויה, התחברות התוכנית לא יכולה לקרוא כראוי את מה שאתה מקליד ואתה לא יכול להיכנס. אם המסוף שלך תומך זוגיות קיבל, תמשיך לראות מסך משובש. אם getty נכשל כדי לזהות זוגיות / etc / קובץ הבעיה הוא בדרך כלל זרקה למסך בדיוק לפני לפני הפקודה, מילים כל כך מסולסלים יותר עשויים להופיע על המסך. למה לא יכול להזדהות זוגיות על ידי האות הראשונה מוקלד? הנה דוגמה: נניח שהיא מזהה 8 סיביות בייט עם קצת זוגיות שלה 0 (גבוהה סדר סדר) עם מספר מוזר של 1 סיביות. איזה שוויון הוא? ובכן, מספר מוזר של 1 סיביות מרמז כי זה זוג מוזר. אבל זה יכול גם להיות אופי 8 סיביות ללא שוויון. אין כל דרך לקבוע עד כמה. אבל עד כה הסרנו את האפשרות של זוגיות. זיהוי של זוגיות ובכך ממשיך בתהליך של חיסול. אם הבית הבא מודפס דומה הראשון וגם רק מבטלת את האפשרות של זוגיות אפילו, זה עדיין בלתי אפשרי לקבוע זוגיות. מצב זה יכול להימשך ללא הגבלת זמן ובמקרים נדירים ההתחברות תיכשל עד שתשנה את שם הכניסה שלך. אם agetty מוצא קצת זוגיות של 1 זה יניח כי זה קצת זוגיות ולא חתיכת מסדר גבוה של תו 8 סיביות. לכן הוא מניח שאינך משתמש במטא-תווים (ערכת סיביות גבוהה) בשם המשתמש שלך (כלומר שהשם שלך ב- ASCII). אפשר להיכנס "לולאה התחברות" בדרכים שונות. נניח שאתה רק להקליד אות אחת או שתיים עבור שם הכניסה שלך ולאחר מכן פגע לחזור. אם אותיות אלה אינן מספקות לזיהוי זוגיות, אזי ההתחברות נמשכת לפני שהמשחק זוהה. לפעמים בעיה זו מתרחשת אם אין לך את המסוף על ו / או מחובר כאשר agetty הראשון מתחיל. אם אתה תקוע זה "התחברות לולאה" דרך לצאת מזה היא להכות את מקש החזרה כמה פעמים עד שתקבל את הבקשה להיכנס. דרך נוספת היא רק לחכות רגע בערך לפסק זמן. לאחר מכן את ההרשמה התחברות getty יהיה לשים על המסך על ידי תוכנית getty ואתה יכול לנסות שוב להיכנס. למרבה הצער, agetty לא יכול לזהות את זה זוגיות.נכון לסוף 1999 אין לה אפשרות להשבית את זיהוי אוטומטי של זוגיות ובכך יזהה זוגיות שגוי. התוצאה היא כי תהליך הכניסה יהיה משובש ואת שוויון יוגדר. לכן זה לא נראה אפשרי לנסות להשתמש בתים 8 סיביות נתונים עם זוגיות. (רוב זה הוא מן הישן Serial-HOWTO על ידי גרג Hankins)עבור זה אחד getty צריך גם לשים ערכים בקובץ תצורה ולהוסיף ערך ב / etc / inittab. הנה כמה דוגמאות לדוגמה לשימוש עבור המסוף שלך שאתה מכניס לקובץ התצורה / etc / gettydefs.
שים לב כי DT38400, DT19200, וכו 'הם רק תוויות חייב להיות זהה שבו אתה משתמש ב / etc / inittab. אם אתה רוצה, אתה יכול לעשות גטי הדפס דברים מעניינים בבאנר ההתחברות. בדוגמאות שלי, יש לי את שם המערכת ואת הקו הטורי המודפס. ניתן להוסיף דברים נוספים: block block צל = כן
כשתסיים עריכה / etc / gettydefs, תוכל לוודא שהתחביר נכון על ידי ביצוע הפעולות הבאות:
ודא שאין אחרים גטי או עצבני config עבור היציאה הטורית שהמסוף שלך מחובר אליה (למשל,/etc/default/{uu}getty.ttySN או /etc/conf.{uu}getty.ttySN), שכן זה כנראה יפריע ריצה גטי על מסוף. הסר קבצים סותרים אלה אם הם יוצאים. ערוך את / etc / inittab קובץ להפעלה גטי ביציאה הטורית (החלפת המידע הנכון עבור הסביבה שלך - יציאה, מהירות וסוג ברירת מחדל של מסוף):
בשלב זה, אתה אמור לראות את ההרשמה התחברות על הטרמינל שלך. ייתכן שיהיה עליך לחזור על מנת לקבל את תשומת הלב של הטרמינל. "M" מייצג מודם. תוכנית זו היא בעיקר עבור מודמים ומאמצע שנת 2000 זה יהיה צורך recompiling להשתמש בו עבור מסופי טקסט (אלא אם אתה משתמש בקרת זרימת חומרה - וזה בדרך כלל דורש כבל בעבודת יד). לתיעוד עבור מסופים מחוברים ישירות, עיין בסעיף "ישיר" של המדריך: mgetty.texi. תסתכל על השורות האחרונות של /etc/mgetty/mgetty.config עבור דוגמה של קביעת תצורה עבור מסוף. אלא אם כן אתה אומר "toggle-dtr no" הוא יחשוב שיש לך מודם ושחרר (לשלול) את סיכה DTR במחשב בניסיון לשווא לאפס את המודם לא קיים. בניגוד gettys אחרים, mgetty לא יצמיד עצמו למסוף עד שמישהו יגיע כל מקש של הטרמינל כך שתראה? עבור המסוף ב חלק עליון או ps עד שזה יקרה. היומנים / var / log / mgetty / עשוי להציג מספר הודעות אזהרה, החלות רק על מודמים שעלולים להתעלם מהם. הנה דוגמה לקו הפשוט שאתה מכניס / etc / inittab:
Getty יוצא לאחר הכניסה (והוא יכול respawn)
אם getty לרוץ משורת הפקודה: תוכניות להפסיק
agetty (עשוי להיות שם getty)
S1: 23: respawn: / sbin / getty -L 19200 ttyS1 vt102
Agetty של זיהוי אוטומטי של בעיות זוגיות
8 סיביות בתים בתים (בתוספת זוגיות)
getty (חלק getty_ps)
מגוחך