ฉันกำลังใช้nohup
คำสั่งจากในขณะที่ชอบ
nohup bash life.bash > nohup.out 2> nohup.err &
ในnohup.err
ไฟล์ฉันมีบรรทัดnohup: ignoring input
เสมอ คุณช่วยฉันค้นหาความหมายของมันได้ไหม
ฉันกำลังใช้nohup
คำสั่งจากในขณะที่ชอบ
nohup bash life.bash > nohup.out 2> nohup.err &
ในnohup.err
ไฟล์ฉันมีบรรทัดnohup: ignoring input
เสมอ คุณช่วยฉันค้นหาความหมายของมันได้ไหม
คำตอบ:
นั่นเป็นเพียงการnohup
บอกคุณว่ามีการตั้งค่าอะไร nohup.err
มันจะออกผลลัพธ์ที่ข้อผิดพลาดมาตรฐานซึ่งคุณได้เปลี่ยนเส้นทางไปยัง คุณสามารถหลีกเลี่ยงข้อความโดยเปลี่ยนเส้นทางอินพุตมาตรฐาน:
nohup bash life.bash > nohup.out 2> nohup.err < /dev/null &
nohup
ตรวจสอบอินพุตมาตรฐานเอาต์พุตมาตรฐานและข้อผิดพลาดมาตรฐานเพื่อดูว่าเชื่อมต่อกับเทอร์มินัลหรือไม่ หากพบว่ามีสิ่งใดเชื่อมต่ออยู่จะจัดการกับสิ่งเหล่านั้นตามความเหมาะสม (ละเว้นอินพุตเปลี่ยนเส้นทางเอาต์พุตไปยังnohup.out
เปลี่ยนเส้นทางข้อผิดพลาดไปยังเอาต์พุตมาตรฐาน) และแจ้งให้คุณทราบถึงสิ่งที่ทำ หากไม่พบสิ่งใดที่จำเป็นต้องตัดการเชื่อมต่อ
nohup
กำลังบอกคุณว่ากำลังทำอะไรอยู่โดยไม่สนใจอินพุต
หากคุณต้องการที่จะหลีกเลี่ยงข้อความนี้เปลี่ยนเส้นทางstdinจาก/dev/null
เช่นนี้
nohup bash life.bash </dev/null >nohup.out 2>nohup.err &
man nohup
"ถ้าอินพุตมาตรฐานเป็นเทอร์มินัลให้เปลี่ยนเส้นทางจากไฟล์ที่อ่านไม่ได้"
ดังนั้น
nohup: ignoring input and appending output to 'nohup.out'
มันกำลังทำสิ่งที่ควรจะทำแม้ว่าจะมีรายการOPTION อยู่นั่นเป็นเหตุผลว่าทำไมอินพุตจึงถูกทิ้ง
นอกจากนี้ดูเหมือนว่าคุณกำลังใช้การเปลี่ยนเส้นทางซ้ำซ้อน nohupสร้าง nohup.out ให้คุณแล้วและถ้าทุกอย่างทำงานได้ดีstderrก็ควรจะเปลี่ยนเส้นทางที่นั่น
ไชโย!
nohup
เลยbash life.bash >life.out 2>life.err </dev/null & disown -h "$!"
ทำสิ่งเดียวกันโดยใช้ฟังก์ชันการทำงานที่มีอยู่ในตัวเชลล์เองเท่านั้น