Jika Anda akan melakukan pengalihan sendiri, Anda hampir tidak ada gunanya nohupsama sekali; bash life.bash >life.out 2>life.err </dev/null & disown -h "$!"melakukan hal yang sama hanya menggunakan fungsionalitas yang dibangun ke dalam shell itu sendiri.
Charles Duffy
Jawaban:
12
Itu hanya nohupmemberi tahu Anda apa yang sudah diatur; itu menghasilkan kesalahan standar, yang Anda arahkan ke nohup.err. Anda dapat menghindari pesan dengan mengarahkan ulang input standarnya:
nohupmemeriksa input standar, output standar, dan kesalahan standar untuk melihat mana yang terhubung ke terminal; jika menemukan apa pun yang terhubung, ia menanganinya sesuai (mengabaikan input, mengarahkan ulang output nohup.out, mengarahkan kesalahan ke output standar), dan memberi tahu Anda apa yang dilakukan. Jika tidak menemukan apa pun yang perlu diputuskan, itu tidak menghasilkan apa pun itu sendiri.
Saya harap itu berarti, mengabaikan semua input keyboard dalam arti sederhana karena berjalan di latar belakang.
Manohar Reddy Poreddy
3
man nohup
"Jika input standar adalah terminal, arahkan kembali dari file yang tidak dapat dibaca."
Karenanya,
nohup: ignoring input and appending output to 'nohup.out'
Itu melakukan apa yang seharusnya dilakukan, meskipun entri OPSI , itu sebabnya input sedang dibuang.
JUGA Tampaknya Anda menggunakan redirection secara berlebihan. nohup sudah membuat nohup.out untuk Anda dan, jika semua berfungsi OK, stderr juga harus diarahkan ke sana.
nohup
sama sekali;bash life.bash >life.out 2>life.err </dev/null & disown -h "$!"
melakukan hal yang sama hanya menggunakan fungsionalitas yang dibangun ke dalam shell itu sendiri.Jawaban:
Itu hanya
nohup
memberi tahu Anda apa yang sudah diatur; itu menghasilkan kesalahan standar, yang Anda arahkan kenohup.err
. Anda dapat menghindari pesan dengan mengarahkan ulang input standarnya:nohup
memeriksa input standar, output standar, dan kesalahan standar untuk melihat mana yang terhubung ke terminal; jika menemukan apa pun yang terhubung, ia menanganinya sesuai (mengabaikan input, mengarahkan ulang outputnohup.out
, mengarahkan kesalahan ke output standar), dan memberi tahu Anda apa yang dilakukan. Jika tidak menemukan apa pun yang perlu diputuskan, itu tidak menghasilkan apa pun itu sendiri.sumber
nohup
memberi tahu Anda apa yang dilakukannya, bahwa itu mengabaikan input.Jika Anda ingin menghindari pesan ini, redirect stdin dari
/dev/null
seperti inisumber
"Jika input standar adalah terminal, arahkan kembali dari file yang tidak dapat dibaca."
Karenanya,
Itu melakukan apa yang seharusnya dilakukan, meskipun entri OPSI , itu sebabnya input sedang dibuang.
JUGA Tampaknya Anda menggunakan redirection secara berlebihan. nohup sudah membuat nohup.out untuk Anda dan, jika semua berfungsi OK, stderr juga harus diarahkan ke sana.
Bersulang!
sumber