Whatsup - לינוקס, תוכנה חופשית וקוד פתוח בעברית

תמיכת לינוקס כללית - האם פעולת ssh במחשב המרוחק ממשיכה להתבצע עד תומה גם...

Anonymous - 26/06/2016 - 12:54
נושא ההודעה: האם פעולת ssh במחשב המרוחק ממשיכה להתבצע עד תומה גם...
גם אם פעולת המחשב שממנו נשלחה פקודת ה- ssh נתקעה, או שנעשה restart אלים וכו'?
למשל, נניח שאני מעדכן מחשב ארץ' שנמצא בהונולולו בעזרת כניסה אליו דרך ssh.
ונניח שפעולת העדכון דורשת הורדה של יותר מגיגה.
ונניח שבמהלך ההורדה של העדכונים, המחשב שלי(שנמצא כמובן בישראל) נתקע(קורה לו לעיתים) ואין מנוס מלהפעילו מחדש, כי פשוט אי אפשר לעבוד איתו.
שום דבר לא מתפקד(לא מקלדת ולא עכבר. הכל תקוע).
האם פעולת העדכון במחשב המרוחק תמשך כרגיל למרות שהמחשב שלי כבר לא זמין?
חתול - 26/06/2016 - 12:58
נושא ההודעה:
לא, ברגע שחיבור ssh נסגר הפעולה מפסיקה להתבצע.
כדי שהוא ימשיך כדאי להשתמש בכלים כמו screen או tmux.
Anonymous - 26/06/2016 - 13:49
נושא ההודעה:
לא יודע איך זה בארצ' אבל ב-LMDE2 פעולת העידכון מתבצעת בשני שלבים:
הורדת כל החבילות מהרשת ורק אחר כך העידכון עצמו. בשלב העידכון עצמו לא צריך רשת - אפשר לנתק את המחשב מרשת האינטרנט. אם בשלב העידכון עצמו יש למשל הפסקת חשמל אז כל מה שנותר לעידכון עצמו נמחק ובפעם הבאה המערכת ממשיכה משלב הפסקת החשמל. היינו, שוב מתחיל תהליך של שני שלבים מהנקודה הקטועה.
Anonymous - 26/06/2016 - 16:05
נושא ההודעה:
חתול :
לא, ברגע שחיבור ssh נסגר הפעולה מפסיקה להתבצע.
כדי שהוא ימשיך כדאי להשתמש בכלים כמו screen או tmux.


תודה.
אם אני מבין אותך נכון(?), אז גם הכלים שהזכרת לא יצליחו להמשיך את העבודה כי אני מדבר על מצב בו המחשב פשוט נתקע ואי אפשר להחזירו לחיים מלבד הפעלתו מחדש.
אין לי דרך לדעת אם חיבור ה- ssh נתקע כאשר המחשב נתקע, אבל אני מעריך שכן...
בעצם אוכל לדעת לאחר הפעלה מחדש של המחשב ואז שוב ניסוי לבצע את העדכון ולראות אם הוא מתחיל את הכל מההתחלה(או לפחות מאיפה שהוא הפסיק פחות או יותר).
Anonymous - 26/06/2016 - 16:08
נושא ההודעה:
Anonymous :
לא יודע איך זה בארצ' אבל ב-LMDE2 פעולת העידכון מתבצעת בשני שלבים:
הורדת כל החבילות מהרשת ורק אחר כך העידכון עצמו. בשלב העידכון עצמו לא צריך רשת - אפשר לנתק את המחשב מרשת האינטרנט. אם בשלב העידכון עצמו יש למשל הפסקת חשמל אז כל מה שנותר לעידכון עצמו נמחק ובפעם הבאה המערכת ממשיכה משלב הפסקת החשמל. היינו, שוב מתחיל תהליך של שני שלבים מהנקודה הקטועה.


פעולת העדכון הייתה סתם דוגמא כדי להסביר למה התכוונתי.
היה חשוב לי עניין ה- ssh עצמו והאם אכן גם הוא נתקע/מפסיק אם המחשב שממנו ssh הופעל נתקע/הופעל מחדש.
Anonymous - 26/06/2016 - 16:28
נושא ההודעה:
screen מאפשר לך להתחבר מחדש לאותו session של הטרמינל גם אחרי שהמחשב עשה reset או אפילו ממחשב אחר לגמרי. זה אמור לעבוד גם במקרה שהמחשב קרס.
Anonymous - 26/06/2016 - 16:44
נושא ההודעה:
מגניב ביותר.
תוכל בבקשה להסביר איך זה מתאפשר אפילו כשהמחשב כבר עליו השלום עד להפעלתו מחדש?
Anonymous - 26/06/2016 - 16:48
נושא ההודעה:
כי יש לך session שעדיין חי (screen מפעיל session חדש )
Anonymous - 26/06/2016 - 17:27
נושא ההודעה:
nohup מוסר ד"ש ומאד נעלב שלא הזכירו אותו.
גם &
Anonymous - 26/06/2016 - 17:45
נושא ההודעה:
Anonymous :
nohup מוסר ד"ש ומאד נעלב שלא הזכירו אותו.
גם &

nohub מטפל רק ב HUP
Anonymous - 26/06/2016 - 17:59
נושא ההודעה:
Anonymous :
כי יש לך session שעדיין חי (screen מפעיל session חדש )

רק רוצה להיות בטוח שהבנתי:
כשאני סתם נכנס דרך ssh ונדפק לי המחשב שממנו שלחתי את פקודת ssh, הסשן נעלם כלא היה לאחר הפעלה מחדש ואילו ב- screen וחברו הסשן נשמר לי על המחשב כך שהוא יודע שיש לו חיבור קיים ממקודם אפילו לאחר שהפעלתי את המחשב מחדש?
Anonymous - 26/06/2016 - 18:08
נושא ההודעה:
Anonymous :
Anonymous :
כי יש לך session שעדיין חי (screen מפעיל session חדש )

רק רוצה להיות בטוח שהבנתי:
כשאני סתם נכנס דרך ssh ונדפק לי המחשב שממנו שלחתי את פקודת ssh, הסשן נעלם כלא היה לאחר הפעלה מחדש ואילו ב- screen וחברו הסשן נשמר לי על המחשב כך שהוא יודע שיש לו חיבור קיים ממקודם אפילו לאחר שהפעלתי את המחשב מחדש?

קוד:

anon@servera:$ ssh user@serverb
user@serverb:$screen


עכשיו ב serverb יש לך session , ולא משנה מה קורה ל user@servera
Anonymous - 26/06/2016 - 18:25
נושא ההודעה:
אה אוקיי.
תודה רבה לך.
שונה ממה שחשבתי Smile.
Anonymous - 26/06/2016 - 19:19
נושא ההודעה:
Anonymous :
Anonymous :
nohup מוסר ד"ש ומאד נעלב שלא הזכירו אותו.
גם &

nohub מטפל רק ב HUP


לא רק.

מה קורה כאשר מתנתק חיבור ה־SSH?

כאשר הניתוק מזוהה במחשב המרוחק, הוא מודיע לתהליך (ולכל צאצאיו) שנעלם להם המסוף. זה נעשה בשליחה של סיגנל בשם Hangup, או בקיצור SIGHUP.

מעבר לכך, לתהליך הייתה אפשרות לכתוב מהמסוף ולקרוא ממנו. זה לא יעבוד. לכן nohup מחליף את הקלט הסטנדרטי ב־‎/dev/null ואת הפלט הסטנדרטי שולח לקובץ. אם התהליך צריך לקבל קלט, הוא יתקע. לכן זה מועיל להרצת פקודות.

סתם & לא עוזר, כי מתישהו יעלם לך המסוף ותחטוף SIGHUP. הפקודה disown של bash כבר קצת יותר רצינית וקרובה יותר לניתוק מהמסוף.
כל הזמנים הם GMT + 2 שעות