nohup program &ผมมีโปรแกรมที่ผมทำงานใช้ STDINโปรแกรมนี้จะรับข้อมูลจาก มีวิธีการส่งข้อความไปยังSTDINโปรแกรมที่ทำงานผ่านnohupหรือไม่?
นี่คือการทำงานของ FreeBSD ที่ทุบตี ฉันต้องการจะดูว่าสิ่งนี้ทำบน linux เช่นกัน
nohup program &ผมมีโปรแกรมที่ผมทำงานใช้ STDINโปรแกรมนี้จะรับข้อมูลจาก มีวิธีการส่งข้อความไปยังSTDINโปรแกรมที่ทำงานผ่านnohupหรือไม่?
นี่คือการทำงานของ FreeBSD ที่ทุบตี ฉันต้องการจะดูว่าสิ่งนี้ทำบน linux เช่นกัน
คำตอบ:
nohupเรียกใช้โปรแกรมด้วยการเปลี่ยนเส้นทางอินพุตมาตรฐาน/dev/null(สมมติว่าคุณไม่ได้เปลี่ยนเส้นทางnohupคำสั่งด้วยตนเอง) ดังนั้นไม่คุณไม่สามารถส่งอินพุตไปที่โปรแกรมนี้
หากคุณต้องการส่งอินพุตไปยังโปรแกรมให้เปลี่ยนเส้นทางอินพุตเมื่อคุณเริ่มต้น:
nohup program <input-file.txt & # input from a file
nohup data-producer | nohup program & # input from another program
mkfifo program.pipe; nohup program <program.pipe & # input from a named pipe, feed it what you want later
(อันที่จริงแล้วอาจเป็นไปได้ที่จะเชื่อมต่ออินพุตมาตรฐานของโปรแกรมไปยังแหล่งอื่นโดยใช้ptraceเช่นดีบักเกอร์หรือแฮ็คอื่น ๆ สิ่งนี้อาจทำให้โปรแกรมขัดข้องได้หากมันติดตามตำแหน่งที่อินพุตมาดูฉันจะหยุดการทำงานชั่วคราวได้อย่างไร ประมวลผลผ่าน ssh, ปฏิเสธ, เชื่อมโยงกับเชลล์หน้าจอใหม่และยกเลิกการหยุดชั่วคราวหรือไม่ ; มีคำถามอื่น ๆ ในเครือข่าย SE ในหัวข้อนี้)
nohupไว้ข้างหน้าด้วยเช่นกันขอบคุณ