ถ้าmvเริ่มเป็น:
ssh host mv x y
จากนั้นmvจะได้รับ SIGPIPE (และตาย) หากพยายามเขียนสิ่งใดไปยัง stdout หรือ stderr (เช่นข้อความแสดงข้อผิดพลาด)
หากคุณเริ่มเซสชันการโต้ตอบเช่น:
ssh host
และเริ่มต้นmvจากเชลล์แบบโต้ตอบในนั้นเมื่อด้านต้นแบบของสถานีหลอกที่เริ่มต้นโดยsshdจะถูกปิด (เมื่อsshปิดการเชื่อมต่อ TCP เมื่อออก) ผู้นำของเซสชันที่เกี่ยวข้องกับด้านทาสของเทอร์มินัลหลอกที่ เป็นเปลือกโต้ตอบระยะไกลจะได้รับสัญญาณ SIGHUP (วางสาย)
เมื่อได้รับสัญญาณนั้นเชลล์ (ยกเว้นว่าคุณได้ออกกtrap '' HUP) มักจะส่งต่อสัญญาณนั้นไปยังกระบวนการทั้งหมดในงานที่พวกเขาเริ่มต้นเว้นแต่คุณจะบอกอย่างชัดเจนว่าไม่ให้ (เช่นกับdisownหรือ&|ในบางเชลล์)
mvโดยทั่วไปกระบวนการอื่น ๆ (เช่น) จะตายเมื่อได้รับสัญญาณนั้นเว้นแต่พวกเขาได้รับคำสั่งให้เพิกเฉย (โดยใช้nohupหรือหากผู้ปกครองเพิกเฉย)
หากคุณได้ออก:
trap '' HUP
จากนั้นงานทั้งหมดที่เริ่มต้นหลังจากที่มันจะสืบทอดและจะไม่สนใจ SIGHUP
เชลล์จะไม่ตายจากสัญญาณ SIGHUP ที่ส่งมาจากการตัดการเชื่อมต่อ แต่จะออกจากที่พรอมต์ถัดไปเนื่องจาก stdin หายไป เมื่อออกแล้วกระสุนบางตัวส่ง SIGHUP ไปยังงานของพวกเขา ผู้ที่เริ่มต้นหลังจากที่trap '' HUPจะเพิกเฉยมันคนอื่นจะตาย
ในระยะสั้นในกรณีนั้นหากคุณไม่ได้ใช้ความระมัดระวังล่วงหน้าเพื่อไม่ให้เกิดขึ้นคุณmvจะต้องตาย
จะหลีกเลี่ยงได้ในครั้งต่อไปถ้าใช้tcsh, zshหรือbashก่อนที่จะปิดเครื่องให้กดCtrl-Zที่จะระงับการmvป้อนbgเพื่อดำเนินการต่อในพื้นหลังและdisownจะปฏิเสธมัน
หรือคุณอาจจะใช้หรือscreen tmuxใน SIGHUP ผู้ใช้จะแยกออกจากโฮสต์ที่หายไปในตอนนี้ แต่แอปพลิเคชันที่ทำงานในเทอร์มินัลที่จำลองจะทำงานต่อไปโดยไม่ต้องมีหัวและคุณสามารถแนบเซสชันกับเทอร์มินัลอื่นmvได้
หรือใช้nohup mvเพื่อสร้างmvภูมิคุ้มกันให้กับ SIGHUP และให้เอาท์พุทและข้อผิดพลาดของมันไปที่nohup.outไฟล์ที่คุณสามารถตรวจสอบได้ในภายหลัง
ตอนนี้ฉันไม่ทราบเกี่ยวกับผู้ให้บริการโฮสต์เฉพาะของคุณ แต่เมื่อคุณsshเข้าสู่อินสแตนซ์บางอย่างคุณไม่ได้เริ่มเชลล์เซสชันที่นั่น แต่แนบกับคอนโซลนั่นคือเซสชันที่เริ่มแล้ว และเมื่อคุณออกคุณจะไม่ยกเลิกเซสชันนั้นเพียง แต่แยกออกจากเซสชันนั้น ดังนั้นกระสุนจะไม่ถูกฆ่าหรือทำmvเช่นนั้น หากเป็นเช่นนั้นคุณจะสังเกตเห็นว่าการpsทำงานจากที่นั่นจะให้pidเปลือกของคุณแบบเดียวกันในสองsshเซสชันแยกกัน