nohup: ไม่สนใจอินพุต - มันหมายความว่าอย่างไร


18

ฉันกำลังใช้nohupคำสั่งจากในขณะที่ชอบ

nohup bash life.bash > nohup.out 2> nohup.err &

ในnohup.errไฟล์ฉันมีบรรทัดnohup: ignoring inputเสมอ คุณช่วยฉันค้นหาความหมายของมันได้ไหม


หากคุณกำลังจะทำการเปลี่ยนเส้นทางด้วยตัวคุณเองคุณแทบจะไม่มีประโยชน์nohupเลย bash life.bash >life.out 2>life.err </dev/null & disown -h "$!"ทำสิ่งเดียวกันโดยใช้ฟังก์ชันการทำงานที่มีอยู่ในตัวเชลล์เองเท่านั้น
Charles Duffy

คำตอบ:


14

นั่นเป็นเพียงการnohupบอกคุณว่ามีการตั้งค่าอะไร nohup.errมันจะออกผลลัพธ์ที่ข้อผิดพลาดมาตรฐานซึ่งคุณได้เปลี่ยนเส้นทางไปยัง คุณสามารถหลีกเลี่ยงข้อความโดยเปลี่ยนเส้นทางอินพุตมาตรฐาน:

nohup bash life.bash > nohup.out 2> nohup.err < /dev/null &

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


6

nohup กำลังบอกคุณว่ากำลังทำอะไรอยู่โดยไม่สนใจอินพุต

หากคุณต้องการที่จะหลีกเลี่ยงข้อความนี้เปลี่ยนเส้นทางstdinจาก/dev/nullเช่นนี้

nohup bash life.bash </dev/null >nohup.out 2>nohup.err &

ฉันหวังว่านั่นหมายถึงมันไม่สนใจอินพุตคีย์บอร์ดทั้งหมดในความรู้สึกที่เรียบง่ายเหมือนกับการทำงานในพื้นหลัง
Manohar Reddy Poreddy

3
man nohup

"ถ้าอินพุตมาตรฐานเป็นเทอร์มินัลให้เปลี่ยนเส้นทางจากไฟล์ที่อ่านไม่ได้"

ดังนั้น

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

มันกำลังทำสิ่งที่ควรจะทำแม้ว่าจะมีรายการOPTION อยู่นั่นเป็นเหตุผลว่าทำไมอินพุตจึงถูกทิ้ง

นอกจากนี้ดูเหมือนว่าคุณกำลังใช้การเปลี่ยนเส้นทางซ้ำซ้อน nohupสร้าง nohup.out ให้คุณแล้วและถ้าทุกอย่างทำงานได้ดีstderrก็ควรจะเปลี่ยนเส้นทางที่นั่น

ไชโย!

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