เป็นไปได้หรือไม่ที่ nohup จะเขียนเอาต์พุตทั้งสองไปยังไฟล์ nohup.out AND ไปยังหน้าจอ / เทอร์มินัล?


23

ฉันกำลังใช้bashเปลือก ฉันใช้เป็นประจำnohupเพื่อให้แน่ใจว่ากระบวนการของฉันจะไม่หยุดทำงานเมื่อฉันปิดเชลล์ / เทอร์มินัลที่สตาร์ท ฉันใช้ไวยากรณ์เช่น:

nohup myprocess

เมื่อเริ่มต้นnohupให้ข้อความ:

nohup: ignoring input and appending output to 'nohup.out'

จากนั้นnohupไม่ให้เอาต์พุตไปที่หน้าจออีกต่อไป; nohup.outมันเป็นสิ่งที่เขียนไป

อย่างไรก็ตามบ่อยครั้งที่ฉันต้องการติดตามความคืบหน้าของการคำนวณของฉัน ฉันสามารถทำได้โดยการอ่านnohup.outโดยใช้viหรือtailแต่อาจใช้เวลานานในการทำมากโดยเฉพาะเมื่อการคำนวณของฉันใช้เวลาหลายชั่วโมง

มีวิธีใดบ้างที่ฉันสามารถพิมพ์เอาต์พุตไปยังทั้งสองอย่าง nohup.out (ในกรณีที่ฉันขาดการเชื่อมต่ออินเทอร์เน็ตและเทอร์มินัลที่เริ่มกระบวนการปิด) และหน้าจอ? ขอบคุณที่สละเวลา.


3
คุณเคยคิดว่าจะใช้งานscreenหรือtmuxไม่ใช้งาน
Derobert

@derobert ขอบคุณ ฉันมีscreenในระบบของฉัน แต่ฉันไม่เคยใช้มัน ฉันไม่มีtmuxในระบบของฉัน แต่ฉันสามารถลองใช้ได้
แอนดรู

2
เพียงแค่เปิดตัวscreen/ ระหว่างการเข้าสู่ระบบและเริ่มต้นtmux myprocessจากนั้นแยกออกจากมันด้วย, prefix 's คำนำหน้าในขณะที่' s คำนำหน้า คุณสามารถออกจากระบบ แต่ตราบใดที่เครื่องยังคงอยู่/ เซสชันของคุณก็จะเหมือนกัน ครั้งต่อไปที่คุณเข้าสู่ระบบคุณสามารถใส่กลับเข้าไป/ เปลือกผ่านหรือ dscreenCtrl-AtmuxCtrl-Bscreentmuxscreentmuxscreen -rtmux attach
jw013

คำตอบ:


20

คุณสามารถเรียกใช้

nohup yourprocess & tail -f nohup.out

หาง -f เย็นน่าเสียดายเหมืองล้มเหลวในการแสดงตัวควบคุมถูกต้อง
อดัมฮันยาดิ

หากคุณต้องการเปลี่ยน nohup.out เป็นอย่างอื่นให้เรียกใช้ run.log จากนั้นติดตามใช้ nohup myprocess> run.log 2> & 1 & tail -f run.log
Prajwel

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