Saya memulai aplikasi saya di latar belakang menggunakan nohup
seperti yang disebutkan di bawah ini -
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
Tetapi setiap kali saya melihat pesan ini -
nohup: ignoring input and redirecting stderr to stdout
Apakah akan ada masalah jika saya melihat pesan ini? Apa artinya dan bagaimana saya bisa menghindarinya?
io-redirection
stdin
nohup
stderr
gudang senjata
sumber
sumber
nohup java -jar blaa bla >/tmp/test.out 2>&1 &
/tmp/test.out
bisa saya gunakanexhibitor.out
. Maaf telah mengajukan pertanyaan bodoh karena saya cukup baru dalam hal-hal ini ..2>&1
?Jawaban:
Untuk memastikan bahwa aplikasi Anda terlepas dari terminalnya - sehingga tidak akan mengganggu perintah latar depan dan akan terus berjalan setelah Anda logout -
nohup
memastikan bahwa stdin atau stdout atau stderr adalah perangkat seperti terminal. The dokumentasi menjelaskan tindakan apa yang diperlukan:Anda mengarahkan stdout ke file saat Anda mengetikkan
> exhibitor.out
baris perintah. Jika Anda setuju dengan stderr aplikasi Anda diarahkan ke file yang sama dengan stdout, Anda tidak perlu melakukan hal lain. Atau Anda dapat mengarahkan stderr ke file lain dengan menambahkan argumen seperti2> exhibitor.err
. (Berkat pengguna yang tidak dikenal - notifikasi saya tidak menunjukkan nama - untuk menyarankan dimasukkannya alternatif ini.)sumber
</dev/null
; Linux akan melakukan ini secara otomatis, tetapi jika tidak dilakukan secara manual Anda masih akan mendapatkan garis dalam output nohup yang berbunyi:nohup: ignoring input
Anda dapat menyingkirkan pesan jika Anda mengarahkan kembali std error ke std output:
sumber
Dalam situasi saya, saya mengarahkan stdout dan stderr, tetapi juga menampilkan berikut ini di file log:
Untuk menghapus peringatan itu, Anda juga harus mengarahkan ulang stdin sebagai berikut:
Saya tahu jawaban ini sudah pasti terlambat untuk Anda, tetapi mungkin itu akan membantu orang lain.
sumber