Чи можливо для nohup записати вихід і у файл nohup.out AND на екран / термінал?


23

Я використовую bashоболонку. Я часто використовую nohupдля того, щоб мої процеси не були зупинені, коли я закриваю оболонку / термінал, який їх запустив. Я використовую синтаксис типу:

nohup myprocess

При запуску nohupвидає повідомлення:

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

Потім nohupне дає більше виводу на екран; все написано на nohup.out.

Однак часто хотілося б стежити за ходом моїх обчислень. Я можу це зробити, читаючи nohup.outза допомогою viабо tail, але це може зайняти багато часу, особливо якщо мої обчислення займають кілька годин.

Чи є спосіб, що я можу надрукувати вихід як nohup.out на випадок (якщо я втрачу підключення до Інтернету, тим самим термінал, який розпочав процес, закритий), так і на екран? Дякую за ваш час.


3
Чи обдумали ви використовувати screenабо tmuxзамість ногупу?
дероберт

@derobert Дякую У мене є screenсистема, але я ніколи її не використовував. У мене немає tmuxмоєї системи, але я можу спробувати її отримати.
Андрій

2
Просто запустіть screen/ tmuxміж входом у систему та запуском myprocess. Потім від'єднати від нього з prefix, d. screenпрефікс 'є Ctrl-A, а tmuxпрефікс' Ctrl-B. Ви можете вийти з системи, але поки машина не працює, ваш screen/ tmuxсеанс теж буде. Наступного разу, коли ви ввійдете в систему, ви можете знову приєднати screen/ tmuxshell, через screen -rабо tmux attach.
jw013

Відповіді:


20

Можна бігати

nohup yourprocess & tail -f nohup.out

хвіст -f здорово, на жаль, мій не вдається правильно відобразити контрольні символи
Адам Хуняді

Якщо ви хочете змінити nohup.out на щось інше, скажіть run.log, а потім дотримуйтесь його, використовуйте nohup myprocess> run.log 2> & 1 & tail -f run.log
Prajwel

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.