Yanıtlar:
Bu sadece nohupne 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 &
nohuphangisinin 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.outyeniden 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/nullbö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.