Czy nohup może zapisać dane wyjściowe zarówno w pliku nohup.out ORAZ na ekranie / terminalu?


23

Używam bashpowłoki. Często używam, nohupaby upewnić się, że moje procesy nie zostaną zatrzymane po zamknięciu powłoki / terminala, który je uruchomił. Używam składni, takiej jak:

nohup myprocess

Podczas uruchamiania nohupwyświetla komunikat:

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

Wtedy nohupnie daje już więcej obrazu na ekranie; wszystko jest napisane do nohup.out.

Często jednak chciałbym monitorować postępy moich obliczeń. Mogę to zrobić, czytając nohup.outza pomocą vilub tail, ale może to zająć dużo czasu, szczególnie gdy moje obliczenia zajmują kilka godzin.

Czy jest jakiś sposób, aby wydrukować wyjście zarówno na nohup.out (w przypadku utraty połączenia internetowego, a tym samym terminal, który rozpoczął proces jest zamknięty) i na ekranie? Dziękuję za Twój czas.


3
Czy zastanawiałeś się nad użyciem screenlub tmuxzamiast nohup?
derobert

@derobert Thanks. Mam screenw swoim systemie, ale nigdy go nie użyłem. Nie mam tmuxw swoim systemie, ale mogę spróbować go zdobyć.
Andrew

2
Wystarczy uruchomić screen/ tmuxmiędzy zalogowaniem a uruchomieniem myprocess. Następnie odłączyć od niego z prefix, d. screenPrefiks to Ctrl-A, natomiast tmuxprefiks to Ctrl-B. Możesz się wylogować, ale dopóki komputer pozostanie włączony, twoja screen/ tmuxsession również. Przy następnym logowaniu możesz ponownie podłączyć screen/ tmuxshell za pomocą screen -rlub tmux attach.
jw013,

Odpowiedzi:


20

Możesz biegać

nohup yourprocess & tail -f nohup.out

tail -f jest fajny, niestety mój nie wyświetla poprawnie znaków kontrolnych
Adam Hunyadi

Jeśli chcesz zmienić nohup.out na coś innego, powiedz run.log, a następnie postępuj zgodnie z tym, użyj nohup myprocess> run.log 2> & 1 & tail -f run.log
Prajwel

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.