nohup: girişi yoksayma ve stderr'ı stdout'a yönlendirme


19

Başvurumu nohupaşağıda belirtildiği şekilde arka planda başlatıyorum -

root@phx5qa01c:/bezook# nohup java -jar ./exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar -c file --fsconfigdir /opt/exhibitor/conf --hostname phx5qa01c.phx.qa.host.com > exhibitor.out &
[1] 30781
root@phx5qa01c:/bezook# nohup: ignoring input and redirecting stderr to stdout

Ama bu mesajı her gördüğümde -

nohup: ignoring input and redirecting stderr to stdout

Bu mesajı görürsem herhangi bir sorun olur mu? Ne anlama geliyor ve nasıl önleyebilirim?


2
denediniz mi:nohup java -jar blaa bla >/tmp/test.out 2>&1 &
Rahul Patil

kullanmak yerine /tmp/test.outkullanabilir miyim exhibitor.out. Bu şeyler için oldukça yeni olduğum için aptalca soru sorduğum için üzgünüm ..
arsenal

evet .. kullanabilirsiniz .. bu sadece std hata / çıktı dosyası. ancak ekledikten sonra durum 2>&1nedir?
Rahul Patil

Yanıtlar:


20

Uygulamanızın terminalinden ayrılmadığından emin olmak için - ön plan komutlarına müdahale etmeyecek ve oturumunuzu kapattıktan sonra çalışmaya devam edecek - nohupne stdin ne de stdout veya stderr'ın terminal benzeri bir cihaz olmamasını sağlar. Dokümantasyon gerekenlere eylemleri anlatır:

Standart çıktı bir terminal ise, belirtilen yardımcı program tarafından standart çıktısına yazılan tüm çıktılar, geçerli dizindeki nohup.out dosyasının sonuna eklenir. Nohup.out oluşturulamaz veya eklenmek üzere açılamazsa, çıktı HOME ortamı değişkeni tarafından belirtilen dizindeki nohup.out dosyasının sonuna eklenir. Her iki dosya da eklenemez veya eklenemez.

Standart hata bir terminal ise, belirtilen yardımcı program tarafından standart hatasına yazılan tüm çıktılar, standart çıktı ile aynı dosya tanımlayıcısına yönlendirilecektir.

Stdout'u > exhibitor.outkomut satırınıza yazdığınızda bir dosyaya yönlendirdiniz . Uygulamanızın stderr'ının stdout'uyla aynı dosyaya yönlendirilmesini sağlıyorsanız, başka bir şey yapmanıza gerek yoktur. Veya stderr gibi bir argüman ekleyerek farklı bir dosyaya yönlendirebilirsiniz 2> exhibitor.err. (Bilinmeyen bir kullanıcı sayesinde - bildirimlerim bu alternatifin eklenmesini önerdiği için bir ad göstermedi).


2
Ayrıca fd girişini şu şekilde manuel olarak kapatmak da yararlıdır </dev/null:; Linux bunu otomatik olarak yapacaktır, ancak manuel olarak yapılmazsa nohup'un çıktısında şu şekilde bir satır elde edersiniz:nohup: ignoring input
wulfgarpro

17

Std hatasını std çıkışına yönlendirirseniz mesajdan kurtulabilirsiniz:

nohup java -jar ./exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar -c file --fsconfigdir /opt/exhibitor/conf --hostname phx5qa01c.phx.qa.host.com > exhibitor.out 2>&1 &

4

Benim durumumda, stdout ve stderr yönlendiriyorum, ama aynı zamanda günlük dosyasında aşağıdakileri görüntüler:

nohup: ignoring input

Bu uyarıyı kaldırmak için stdin'i aşağıdaki gibi de yönlendirmeniz gerekir:

nohup java -jar ./exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar -c file --fsconfigdir /opt/exhibitor/conf --hostname phx5qa01c.phx.qa.host.com > exhibitor.out 2>&1  </dev/null &

Bu cevabı kesinlikle sizin için geç buldum, ama belki başkalarına yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.