จะให้โปรแกรมทำงานต่อไปหลังจากที่ SSH หลุดการเชื่อมต่อได้อย่างไร [ซ้ำ]


15

ซ้ำซ้อนที่เป็นไปได้:
ให้โปรแกรมทำงานต่อหลังจากปิดคอนโซลหลังจากที่โปรแกรมเริ่มทำงาน
ฉันจะใช้ ssh เพื่อเรียกใช้คำสั่งบนเครื่อง Unix ระยะไกลและออกก่อนที่คำสั่งจะเสร็จสมบูรณ์ได้อย่างไร

Hi!

ฉันต้องการเรียกใช้โปรแกรมจากโน้ตบุ๊กโดยการเชื่อมต่อ SSH กับเซิร์ฟเวอร์ระยะไกล ปัญหาคือฉันจะกลับบ้านด้วยสมุดบันทึกของฉัน :)

จะให้โปรแกรมทำงานต่อไปได้อย่างไร?

คำตอบ:


22

'หน้าจอ' มักเป็นสิ่งที่คุณต้องการ จะช่วยให้คุณสามารถยกเลิกการเชื่อมต่อและเชื่อมต่ออีกครั้งได้ตามต้องการ หลังจากที่คุณ SSH เข้าสู่เซิร์ฟเวอร์ให้รันหน้าจอก่อนเริ่มโปรแกรมของคุณ Ctrl-a, Ctrl-d จะตัดการเชื่อมต่อคุณ (โปรแกรมดำเนินการต่อโดยไม่คำนึงถึง) เมื่อคุณกลับมา 'screen -r' จะเชื่อมต่อคุณใหม่ราวกับว่าคุณไม่เคยจากมา

คิดว่ามันเป็น VNC หรือ RDP สำหรับเทอร์มินัลข้อความ ค้นหา 'ใช้หน้าจอ' สำหรับบทช่วยสอนมากมาย

แก้ไขเพิ่ม: วันนี้ฉันจะแนะนำtmuxแทนโดยเฉพาะถ้าใช้ร่วมกับสคริปต์ที่TMX ความสามารถในการแยกบานหน้าต่าง (แนวตั้งและแนวนอน) และปรับขนาดให้เป็นประโยชน์อย่างมากบนหน้าจอ


5
อนึ่งหน้าจอจะยังคงทำงานต่อไปหากการเชื่อมต่อของคุณหมดเวลาหรืออะไรทำนองนั้นในขณะที่คุณยังเชื่อมต่ออยู่ คำสั่งที่เป็นประโยชน์บางคำสั่ง: ctrl + a, ctrl + d = แยกออกจากหน้าจอ, หน้าจอ -r = แนบหน้าจออีกครั้ง, หน้าจอ -x = แนบไปที่หน้าจอในโหมดที่ใช้ร่วมกัน (สามารถใช้สำหรับการสอน ฯลฯ ผู้ใช้สองคนสามารถแบ่งปัน หน้าจอเดียวกัน), ctrl + a, esc = เข้าสู่โหมดเลื่อน (กด q เพื่อออกอีกครั้ง) หมายเหตุ: หากคุณเริ่มหน้าจอโดยการพิมพ์ "โปรแกรมหน้าจอ" มันจะเปิดโปรแกรมในหน้าจอทันที แต่ถ้ามันออกคุณจะสูญเสียบัฟเฟอร์ การพิมพ์เพียงแค่ "หน้าจอ" จะทำให้เทอร์มินัลแบบถาวร

Chris, tnx สำหรับคำตอบที่มีประโยชน์ด้วย

18

nohup เป็นคำสั่งที่จะเรียกใช้คำสั่งอื่นและทำให้เป็นภูมิคุ้มกันต่อสัญญาณ "hangup"

คุณเรียกใช้มันเป็นเพียงแค่:

nohup command

แต่คุณจะต้องเปลี่ยนเส้นทาง stdin, stdout และ stderr ด้วย ดูหน้าคนสำหรับข้อมูลเพิ่มเติม

คุณอาจต้องการวางไว้ในพื้นหลัง

คุณจะต้องรู้killคำสั่งเพื่อฆ่ามันในที่สุด


ใช่มาก! ง่ายมาก))

นี่คือสิ่งที่ฉันใช้ ง่ายมาก ๆ ใช้teeเพื่อเปลี่ยนเส้นทาง stdin, stdout และ stderr
Ritwik Bose
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.