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
ไว้ข้างหน้าด้วยเช่นกันขอบคุณ