Score:1

เหตุใดฉันจึงไม่สามารถเรียกใช้โปรแกรมหลังจากปิดการเชื่อมต่อ SSH โดยใช้ setid, nohup หรือ disown

ธง no

ฉันพยายามเรียกใช้โปรแกรม 'a.o' บนเซิร์ฟเวอร์ระยะไกล เพื่อให้มันทำงานต่อไปหลังจากปิดการเชื่อมต่อ SSH ฉันลองทำสิ่งต่อไปนี้:

เซตซิด ./a.o
โนฮัป ./a.o
./a.o &
ปฏิเสธ -h %1

ดูเหมือนว่าตัวเลือกเหล่านี้จะไม่ทำงาน และฉันก็ไม่รู้ว่าทำไม มีความคิดเกี่ยวกับวิธีการแก้ไขปัญหานี้หรือไม่?

ป.ล. ฉันใช้การเชื่อมต่อทันเนลเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ผ่านเครื่องกระโดด นอกจากนี้ยังเป็นโปรแกรมที่เกี่ยวข้องกับโค้ด CUDA ที่ทำงานบน GPU สิ่งเหล่านี้เกี่ยวข้องกับปัญหาหรือไม่?

user535733 avatar
cn flag
คุณสามารถใช้ Terminal Multiplexer เพื่อให้กระบวนการทำงานต่อไปหลังจากออกจากระบบ ทั้ง `screen` และ `tmux` ค่อนข้างดี และทั้งคู่อยู่ในที่เก็บ Ubuntu
edwardliang2019 avatar
no flag
@user535733 ขอบคุณมากครับ ฉันลอง tmux และใช้งานได้!
Score:1
ธง cn

เดอะ ไม่อัพ หน้าวิกิพีเดีย มีการอ้างอิงถึงปัญหานี้โดยเฉพาะ:

โปรดทราบว่าโดยทั่วไปแล้วงานที่ไม่ทำงานในพื้นหลังจะใช้เพื่อหลีกเลี่ยงการยกเลิกงานเหล่านั้นเมื่อออกจากระบบจากเซสชัน SSH ระยะไกล ปัญหาอื่นที่มักเกิดขึ้นในสถานการณ์นี้คือ ssh ปฏิเสธที่จะออกจากระบบ ("แฮงค์") เนื่องจากไม่ยอมสูญเสียข้อมูลใดๆ จาก/ไปยังงานเบื้องหลัง[6][7] ปัญหานี้สามารถแก้ไขได้ด้วยการเปลี่ยนทิศทางสตรีม I/O ทั้งสาม:

$ nohup ./myprogram > foo.out 2 > foo.err < /dev/null &

โปรดทราบว่าการปิดเซสชัน SSH ไม่ได้ส่งสัญญาณ HUP ไปยังกระบวนการที่ขึ้นต่อกันเสมอไป เช่น เมื่อไม่ได้จัดสรรเทอร์มินัลหลอก

ตามที่กล่าวไว้ในความคิดเห็น หน้าจอ และ tmux ก็เหมาะสำหรับสิ่งนี้เช่นกัน โดยส่วนตัวแล้วฉันชอบ tmux.

edwardliang2019 avatar
no flag
ขอบคุณมาก! นั่นช่วยแก้ปัญหาของฉันได้อย่างสมบูรณ์แบบ และ tmux ก็ใช้งานได้สำหรับฉันเช่นกัน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา