ปล่อยให้สคริปต์ทุบตีทำงานใน terminal ระยะไกลในขณะที่ไม่ได้เข้าสู่ระบบ?


14

ฉันมีสคริปต์ทุบตีที่ใช้เวลาหลายชั่วโมงในการทำงาน ในขณะที่ทำงานฉันต้องการทำสิ่งอื่นซึ่งอาจเกี่ยวข้องกับการออกจากระบบหรือตัดการเชื่อมต่อจากอินเทอร์เน็ต (สคริปต์ของฉันรันการทดสอบเครือข่ายในคอมพิวเตอร์หลายเครื่อง)

ฉันเข้าใจว่ามีคำสั่งที่อนุญาตให้ฉันรันการทดสอบจากรีโมตเทอร์มินัลและล็อกเอาต์ของเทอร์มินัลขณะที่รัน ไม่มีใครรู้ว่าคำสั่งนี้คืออะไร?

คำตอบ:


17

nohupคำสั่งที่คุณกำลังมองหาอยู่

นอกจากนี้ยังscreenมีไว้สำหรับเมื่อคุณต้องการที่จะปล่อยให้บางสิ่งบางอย่างทำงาน แต่กลับมาและ reattach โต้ตอบในภายหลัง

nohupจะง่ายกว่าหากคำสั่งคาดว่าจะไม่มีการป้อนข้อมูลของผู้ใช้หลังจากการเปิดตัวและscreenจะดีกว่าถ้าคุณต้องการให้โปรแกรมทำงานแบบโต้ตอบ


ฉันดู nohup ในตอนนี้และเห็นได้ชัดว่ามีปัญหาเกี่ยวกับอินพุตและเอาต์พุตซึ่งอาจทำให้สคริปต์วางสาย ฉันเห็นบางสิ่งเกี่ยวกับหน้าจอซึ่งทำให้ฉันเป็นเหมือนที่ฉันเคยอ่านมาก่อน คุณรู้วิธีใช้สิ่งเหล่านี้หรือไม่?
Ritwik Bose

1
nohup ใช้สำหรับเมื่อสคริปต์คาดว่าจะไม่มีอินพุตของผู้ใช้ - มันจะบันทึกเอาต์พุตทั้งหมดไปยังไฟล์ หน้าจอสำหรับเมื่อคุณต้องการที่จะปล่อยให้บางสิ่งบางอย่างทำงาน แต่กลับมาและ reattach โต้ตอบในภายหลัง nohup นั้นง่ายกว่าหากคำสั่งคาดว่าจะไม่มีการป้อนข้อมูลของผู้ใช้หลังจากการเปิดตัวและหน้าจอจะดีกว่าถ้าคุณต้องการที่จะใช้โปรแกรมแบบโต้ตอบ
Justin Smith เมื่อ

อ่าเจอแล้ว สำหรับหน้าจอเป็น ctrl-A d เพื่อแยกและ -r + pid เพื่อติดตั้งใหม่
Ritwik Bose

คำตอบที่ดี. คุณควรเพิ่มความคิดเห็นบนหน้าจอเพื่อตอบคำถามให้ชัดเจนยิ่งขึ้น
DaveParillo

1

ฉันใช้nohupสำหรับสิ่งนี้ ในกรณีของฉันฉันมีสคริปต์ python ชื่อaction.py ฉันเรียกใช้สคริปต์บนเซิร์ฟเวอร์ระยะไกลด้วยnohup python action.py & แล้วฉันจะปิดสถานี ต่อมาเมื่อมันทำงานเสร็จแล้วคุณสามารถดูการส่งออกทั้งหมดจากกระบวนการในการที่จะได้รับการสร้างขึ้นในไดเรกทอรีเดียวกับnohup.out action.pyหากไฟล์มีอยู่แล้วเอาท์พุทเพิ่มเติมจะถูกผนวกเข้ากับมัน

อุปสรรค์เพียงอย่างเดียวไม่ทราบว่าเมื่อสคริปต์รันหลักสูตรดังนั้นในกรณีของฉันฉันได้ส่งอีเมลถึงฉันเมื่อเสร็จสิ้น หวังว่านี่จะช่วยใครซักคน!


0

จะเกิดอะไรขึ้นถ้าคุณลืมเพิ่มnohupคำสั่งเมื่อเริ่มต้นคำสั่งของคุณ?

ให้เราบอกว่าคุณได้ใช้คำสั่งแบบยาวต่อไปนี้:

จุดเริ่มต้นของเอาต์พุตของคำสั่งแบบยาว

สิ่งนี้เรียกls -Ral /ว่าควรจะแสดงรายการไฟล์ทั้งหมดและโฟลเดอร์ทั้งหมดรวมถึงไฟล์ที่ถูกซ่อนด้วยรูปแบบยาวเริ่มจากโฟลเดอร์รูทซ้ำ มันอาจจะใช้เวลาสักครู่.

เพียงแค่กด+ctrlZ

หยุดคำสั่งแบบยาว

คุณได้รับมันกลับมาได้อย่างไร?

fgคำสั่งจะได้รับมันกลับเข้ามาในเบื้องหน้าคือ

นำคำสั่งกลับมา

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