Jawaban:
Itu hanya nohup
memberi 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:
nohup bash life.bash > nohup.out 2> nohup.err < /dev/null &
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 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.
nohup
memberi tahu Anda apa yang dilakukannya, bahwa itu mengabaikan input.
Jika Anda ingin menghindari pesan ini, redirect stdin dari /dev/null
seperti ini
nohup bash life.bash </dev/null >nohup.out 2>nohup.err &
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.
Bersulang!
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.