โพสต์นี้อาจช่วย คำแนะนำคือ:
- พื้นหลังกระบวนการ (ด้วย Ctrl-Z จากนั้นbg )
- เรียกใช้disown -h% [jobid] (น่าจะเป็น bash-ism ดังนั้นคุณจะต้องแปลสำหรับ tcsh)
ข่าวร้ายของหลักสูตรคือว่าBGจะต้องมีการทำในเปลือกเดียวกันกระบวนการทำงานใน ... แต่ ... มันอาจอยู่แล้วจะ backgrounded
ข่าวร้ายจริงๆก็คือการปฏิเสธการเรียกร้องอาจจำเป็นที่จะต้องทำในเปลือกเดียวกัน ในกรณีนี้ใช่คุณกำลังเมา แต่ฉันไม่แน่ใจว่าอาจจะทำให้รูตปลดการเชื่อมต่อได้
อืมมม ข่าวดีที่เป็นไปได้- tcsh ทำการปฏิเสธโดยอัตโนมัติ:
หากออกจาก tcsh ผิดปกติมันจะปฏิเสธงานที่กำลังทำงานอยู่ในพื้นหลังโดยอัตโนมัติเมื่อออก
ดังนั้นหากกระบวนการระยะยาวของคุณมีพื้นหลังแล้วการฆ่าผู้ปกครอง tcsh ควรอนุญาตให้ดำเนินการต่อ กระบวนการถูกยกเลิกการเชื่อมต่อจากเทอร์มินัลเริ่มต้น (หากไม่ใช่โปรดดู "ข่าวร้าย" ด้านบน)
น่าเสียดายที่มันไม่ใช่หน้าจอดังนั้นจึงไม่มีการเชื่อมต่อจริง คุณสามารถปลอมด้วย gdb อาจ (อีกครั้งจากลิงค์แรก):
[... ] กับแฮ็กสกปรกบางอย่างมันเป็นไปไม่ได้ที่จะเปิดกระบวนการ 'stdout / stderr / stdin อีกครั้ง
ดังนั้นคุณยังสามารถสร้างหน้าต่างหน้าจอว่างเปล่า (เช่นอินสแตนซ์ที่ทำงาน)
จากนั้นใช้ gdb เพื่อแนบกับกระบวนการให้ทำการโทรปิด (0)
ปิดการโทร (1)
ปิดการโทร (2)
เปิดการโทร ("/ dev / pts / xx", ... )
โทรซ้ำ (0)
โทร dup (0)
detach
ผลลัพธ์ของกระบวนการจะไปที่หน้าจอ มันจะไม่ติดกับหน้าจอเทอร์มินัลดังนั้นตัวอย่างเช่น [sic] จะฆ่าคำสั่ง "sleep" ไม่ใช่กระบวนการ แต่อาจเพียงพอสำหรับ OP
ฉันสงสัยว่าไม่ควรมี "call dup (1)" และ "call dup (2)" ในกระบวนการนั้นด้วย ...