มีวิธีการเปลี่ยนเส้นทางการส่งออก nohup ไปยังไฟล์บันทึกอื่นที่ไม่ใช่ nohup.out หรือไม่?


112

ฉันใช้โปรแกรมเป็นประจำnohupเพื่อให้กระบวนการของฉันไม่ติดแฮงค์ ดังนั้นหากฉันต้องการให้โปรแกรมมีprogramภูมิคุ้มกันต่อการแฮงค์ฉันจะใช้คำสั่ง

nohup program &

ที่&ทำให้กระบวนการในพื้นหลัง

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

nohup: ผนวกเอาต์พุตไปที่ `nohup.out '

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

หน้าคู่มือ (เช่นที่นี่ ) ดูเหมือนจะไม่มีตัวเลือกในการระบุไฟล์บันทึก คุณกรุณายืนยันสิ่งนี้ได้ไหม นอกจากนี้คุณมีความคิดว่าฉันจะแก้ไขปัญหานี้ได้อย่างไร?


3
ปลายปี แต่มีคำตอบที่ครอบคลุมดีที่นี่: stackoverflow.com/questions/4549489//
Rahul Jha

คำตอบ:


132

GNU coreutils nohupman page ระบุว่าคุณสามารถใช้การเปลี่ยนเส้นทางปกติ:

หากอินพุตมาตรฐานคือเทอร์มินัลให้เปลี่ยนเส้นทางจาก / dev / null หากเอาต์พุตมาตรฐานเป็นเทอร์มินัลให้ผนวกเอาต์พุตไปที่ 'nohup.out' หากเป็นไปได้ '$ HOME / nohup.out' เป็นอย่างอื่น หากข้อผิดพลาดมาตรฐานคือเทอร์มินัลให้เปลี่ยนเส้นทางไปยังเอาต์พุตมาตรฐาน หากต้องการบันทึกผลลัพธ์ไปยัง FILE ให้ใช้ 'nohup COMMAND> FILE'

แก้ไข: ฉันไม่ได้อ่านลิงค์ของคุณในตอนแรก; คุณอาจมีรุ่นที่แตกต่างกันnohupถึงแม้ว่าส่วนนี้แสดงให้เห็นว่าคุณยังคงสามารถใช้การเปลี่ยนเส้นทางปกติ:

 nohup.out          The output file of the nohup execution if
                    standard  output is a terminal and if the
                    current directory is writable.

คุณสามารถเปลี่ยนเส้นทางเอาต์พุตมาตรฐานและข้อผิดพลาดมาตรฐานไปยังไฟล์ต่างๆ:

nohup myprogram > myprogram.out 2> myprogram.err

หรือไฟล์เดียวกัน:

nohup myprogram > myprogram.out 2>&1

54
หากต้องการตอบเฉพาะ: ใช้nohup program > program.out &เพื่อเขียนผลลัพธ์ไปที่program.outแทนที่จะnohup.out
Jim Paris

4
และนี่ไม่ใช่เฉพาะโปรแกรมอรรถประโยชน์ของ GNU พฤติกรรมดังกล่าวถูกระบุโดย POSIX
Gilles

3
ดูเหมือนจะไม่ทำงาน มันเปลี่ยนเส้นทางการส่งออกของคำสั่ง nohup ค่อนข้างเอาท์พุทของ myprogram
Kris

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