Apakah mungkin bagi nohup untuk menulis output ke file nohup.out DAN ke layar / terminal?

23

Saya menggunakan bashshell. Saya sering menggunakan nohupuntuk memastikan bahwa proses saya tidak berhenti ketika saya menutup shell / terminal yang memulai mereka. Saya menggunakan sintaks seperti:

nohup myprocess

Saat memulai, nohupberikan pesan:

nohup: ignoring input and appending output to 'nohup.out'

Kemudian, nohuptidak memberikan output lagi ke layar; itu semua ditulis untuk nohup.out.

Namun, sering kali, saya ingin memantau kemajuan perhitungan saya. Saya dapat melakukan ini dengan membaca nohup.outmenggunakan viatau tail, tetapi ini bisa memakan waktu untuk melakukan banyak hal, terutama ketika perhitungan saya memakan waktu beberapa jam.

Apakah ada cara saya bisa mencetak output untuk keduanya nohup.out (jika saya kehilangan koneksi internet dan dengan demikian terminal yang memulai proses ditutup) dan ke layar? Terima kasih atas waktunya.

Andrew
sumber
3
Sudahkah Anda mempertimbangkan untuk menggunakan screenatau tmuxbukannya nohup?
derobert
@derobert Terima kasih. Saya miliki screendi sistem saya, tetapi saya tidak pernah menggunakannya. Saya tidak memiliki tmuxsistem saya, tetapi saya bisa mencoba mendapatkannya.
Andrew
2
Luncurkan screen/ tmuxantara masuk dan mulai myprocess. Kemudian lepaskan dari itu dengan prefix, d. screenAwalan adalah Ctrl-A, sedangkan tmuxawalan adalah Ctrl-B. Anda dapat log out tapi selama mesin tetap up, Anda screen/ tmuxsesi juga akan. Lain kali Anda masuk, Anda dapat memasang kembali screen/ tmuxshell, melalui screen -ratau tmux attach.
jw013

Jawaban:

20

Anda bisa lari

nohup yourprocess & tail -f nohup.out
choroba
sumber
tail -f itu keren, sayangnya milikku gagal menampilkan karakter kontrol dengan benar
Adam Hunyadi
Jika Anda ingin mengubah nohup.out menjadi sesuatu yang lain, katakan run.log, lalu ikuti, gunakan nohup myprocess> run.log 2> & 1 & tail -f run.log
Prajwel
16

Bukti.

nohup yourprocess 1>&2  | tee nohup.out &
Jhonathan
sumber