ถ้า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
เซสชันแยกกัน