Yanıtlar:
Bu sadece nohup
ne ayarlandığını anlatıyor; bunu yeniden yönlendirdiğiniz standart hatasına gönderir nohup.err
. Standart girişini yeniden yönlendirerek iletiden kaçınabilirsiniz:
nohup bash life.bash > nohup.out 2> nohup.err < /dev/null &
nohup
hangisinin bir terminale bağlı olduğunu görmek için standart girişini, standart çıkışını ve standart hatasını kontrol eder; bağlı olanları bulursa, bunları uygun şekilde ele alır (girişi yok saymak, çıkışı nohup.out
yeniden yönlendirmek, hatayı standart çıktıya yeniden yönlendirmek) ve ne yaptığını size söyler. Bağlantısının kesilmesi gereken bir şey bulamazsa, hiçbir şeyin kendisini vermez.
nohup
size tam olarak ne yaptığını, girdiyi görmezden geldiğini söylüyor.
Bu iletiyi yönlendirme kaçınmak istiyorsanız Stdin gelen /dev/null
böyle
nohup bash life.bash </dev/null >nohup.out 2>nohup.err &
man nohup
"Standart giriş bir terminalse, okunamayan bir dosyadan yeniden yönlendirin."
Bu nedenle,
nohup: ignoring input and appending output to 'nohup.out'
OPTION girişlerine rağmen yapması gerekeni yapıyor , bu yüzden girdi atılıyor.
AYRICA , yeniden yönlendirmeyi fazla kullanıyorsunuz gibi görünüyor. nohup zaten sizin için bir nohup.out oluşturur ve eğer her şey yolunda giderse, stderr da oraya yönlendirilmelidir.
Şerefe!
nohup
;bash life.bash >life.out 2>life.err </dev/null & disown -h "$!"
aynısını yalnızca kabuğun kendisine yerleşik işlevselliği kullanarak yapar.