การเชื่อมต่อ SSH สูญหายระหว่างการอัปเกรดเซิร์ฟเวอร์ - จะเชื่อมต่อใหม่เพื่อประมวลผลได้อย่างไร


32

ดังนั้นฉันจึงทำการอัพเกรด Ubuntu Server จาก 11.04 เป็น 11.10

ฉันลืมมันในพื้นหลังและลูกค้า SSHของฉันหมดเวลาและยกเลิกการเชื่อมต่อ (ผงสำหรับอุดรูบน Windows, ไปคิด) สิ่งสุดท้ายใน terminal ของฉันคือคำถามเกี่ยวกับการเก็บ config เก่า ๆ

เมื่อฉันกลับเข้าสู่เซิร์ฟเวอร์ไฟล์ความถนัดถูกล็อคโดยกระบวนการอื่นดังนั้นฉันคิดว่ากระบวนการอัพเกรดนี้อยู่ที่นั่นเพื่อรออินพุตของฉัน

ฉันจะโต้ตอบกับกระบวนการนี้และอัพเกรดต่อไปได้อย่างไร ถ้าเป็นไปได้.

ขอบคุณ


คำตอบ:


36

กระบวนการทำงานจริงในหน้าจอหรือเซสชัน byobu ในฐานะผู้ใช้รูท เชื่อมต่อกับเซิร์ฟเวอร์อีกครั้งด้วยผงสำหรับอุดรูบนพอร์ต 22 หรือ 1022 ที่ไม่ปลอดภัย sudo su - หรือ su - เข้าสู่บัญชีรูทของคุณและกลับสู่หน้าจอด้วย byobu หรือหน้าจอ -r

โอ้และใช่ฉันพบวิธีที่ยาก ;-)


1
ว้าวขอบคุณมาก! จริง ๆ แล้วฉันใช้งานการอัปเกรดรุ่น 11.10 ถึง 12.04 ใน byobu และจากนั้นจะปิดเมื่อ byobu ได้รับการอัปเกรด แต่ฉันสามารถเชื่อมต่อกับเซสชันหน้าจอรูทใหม่และดูการอัพเกรดได้! ฉันเกือบจะพยายามฆ่าการอัพเกรด แต่ก็โชคดีที่ฉันอ่านคำตอบนี้ทันเวลา
อิบราฮิม

3
ในการติดตั้งที่ติดขัดมันบอกว่าหน้าจอได้ถูกติดตั้งไปแล้วดังนั้นฉันจึงบังคับให้ถอดหน้าจอออก คำสั่งคือหน้าจอ -D ข้อมูลจากที่นี่: kb.iu.edu/data/ahrm.html
David

1
การใช้screen -r <id>งานได้ผลและคุณต้องพิมพ์อักขระเพียงไม่กี่ตัวเพื่อให้ใช้งานได้
แดเนียล

1
มันใช้งานไม่ได้สำหรับฉันเพราะมันบอกscreenว่าไม่ได้ติดตั้ง
starbeamrainbowlabs

1
Ubuntu รุ่นใหม่กว่าใช้sudo screen -D -rหลังจากsudo su -(ถ้าไม่ใช่รูท)
bshea

34

คุณทำไม่ได้ ค้นหากระบวนการอัพเกรดโดยทำ

lsof /var/lib/dpkg/lock

ฆ่ามันแก้ไขการอัพเกรดที่ขัดจังหวะด้วย

dpkg --configure --pending

และรีสตาร์ทการอัพเกรด


3
ปลอดภัยกับกระบวนการเป็นdo-release-upgradeหรือไม่
Stephen Melrose

1
@StephenMelrose ไม่เคยปลอดภัย แต่มันก็มีความปลอดภัยพอสมควรและเป็นทางเลือกเดียวที่เหลืออยู่
ตุ๊กตา

2
คำตอบที่ดีที่สุดระหว่างคนมากมายเกี่ยวกับวิธีแก้ไขอัปเกรด apt-get ถูกยกเลิกโดยการหมดเวลาของ putty ... ทดสอบสำเร็จแล้วขอขอบคุณ!
Kojo

and restart the upgradeขั้นตอนที่ไม่ได้ทำงานในกรณีของฉัน (ฉันได้สูญเสียครั้ง ssh ในช่วงdo-release-upgrade14.04 -> 16.04) สิ่งที่ฉันทำแทนเป็นขั้นตอนสุดท้ายที่จะเสร็จสิ้นการปรับรุ่นการเปิดตัวเป็นแล้วsudo apt autoremove sudo shutdown -r now
Ruslan Stelmachenko

พบคำตอบที่สมบูรณ์มากขึ้นที่นี่ซึ่งฉันติดตามการอัพเกรดโดยอัตโนมัติอย่างต่อเนื่องที่มันเหลือ askubuntu.com/questions/219545/…
lacostenycoder

4

cryopid (พบผ่านคำถามนี้ ) อาจช่วยได้เว้นแต่ "หนึ่งกระบวนการไม่ใช่แผนผังกระบวนการ" ปัจจุบันเป็นปัญหาในกรณีนี้

ไฟล์อาจถูกล็อคเนื่องจากกระบวนการถูกฆ่าอย่างไม่มีวันจบและไม่มีโอกาสได้ล้างข้อมูลหลังจากตัวเองดังนั้นยืนยันว่าความถนัดยังคงทำงานอยู่ ใช้lsof /var/lib/dpkg/lockตามคำแนะนำในคำตอบของ Teddy เพื่อตรวจสอบ - สิ่งนี้จะบอกให้คุณทราบ pid เพื่อลอง cryopid ด้วย

ในอนาคตฉันแนะนำให้ลองเรียกใช้ผ่านหน้าจอทุกที่ที่เป็นไปได้ ฉันได้สร้างนิสัยของหน้าจอ (หรือ byobu ซึ่งเป็นเสื้อคลุมรอบ ๆ หน้าจอที่กำหนดพฤติกรรมที่มีประโยชน์บางอย่าง) เป็นสิ่งแรกที่ฉันทำงานเมื่อ SSHing ไปที่ใดก็ได้จากนั้นฉันสามารถเชื่อมต่ออีกครั้งหากมีปัญหา คุณสามารถตั้งค่าให้เริ่มต้นหรือใส่กลับเข้าไปใหม่โดยอัตโนมัติแม้ว่าฉันจะไม่เคยทำแบบนั้นทุกที่ - มีตัวอย่างจำนวนมากทางออนไลน์ (ตัวอย่างนี้ ) หากคุณต้องการลอง


1
อนึ่งฉันยึดเอาสิ่งนี้และทำ do-release-upgrade over ssh โดยใช้ byobu แต่เมื่อ byobu ได้รับการอัพเกรดมันฆ่าเซสชันของฉัน! ฉันสงสัยว่าการใช้หน้าจอโดยตรงจะป้องกันได้หรือไม่ แต่คำตอบอื่น ๆ สำหรับคำถามนี้ตอบสถานการณ์ของฉันดูเหมือนว่าตัวติดตั้งนั้นฉลาดและรันเซสชันหน้าจอของตัวเองอยู่ดี: D
Ibrahim
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.