2013-03-14 5 views
0

У меня есть программа, которая будет работать в течение длительного времени. Эта программа редактирует и запускает на удаленном сервере. Я использую компьютер в офисе для удаленного подключения сервера и запуска его. Прогресс показывает на экране компьютера компьютера в моем офисе ...Как передать вывод на экран текущего процесса?

Я хочу видеть вывод в своем доме, как я могу захватить вывод, который находится на экране компьютера в офисе, и увидеть результат на Главная?

Я думаю о записи вывода в файл, но мне нужно закрыть файл. Поэтому я должен открыть файл, затем написать вывод, закрыть .. открыть снова?

благодаря

Я не знаю, правильный тег должен использовать, но программа написана на Perl .....

ответ

2

вы можете tee его

your_program.pl | tee logfile.txt 

и увидеть Lastest результат в logfile.txt дома с

tail -f logfile.txt 
+0

Обратите внимание, что вы должны, вероятно, захватить stderr вместе с stdout –

+0

Точно. Это можно сделать с помощью 'your_program.pl | & tee logfile.txt'. – Alec

2

Почему не просто перенаправляют в лог-файл и tail его (или нагрузки это в редакторе и т. д.)?

$ myprog.pl >/tmp/logfile 2>&1 

выше переадресует вывод в лог-файл (/tmp/logfile - вы можете выбрать лучшее место, так как /tmp носит временный характер и может быть громил во время перезагрузки) и перенаправляет стандартный вывод/STDERR на том же месте. Обратите внимание, что это захватывает вывод вашей программы, и вам не нужно изменять свой скрипт.

Альтернатива для запуска программы в screen

Пожалуй, одним из наиболее полезных функций является то, что вы можете повторно подключиться к ваших сессий после того, как вы выйдите из системы, перейти на другой компьютер или получить отключены и продолжают работать, как будто ничего не произошло. Все ваши сеансы редактирования, окна оболочки и т. Д. Будут там, как вы оставили их.

1

Лично я использую screen для такого рода вещи.

  • Подключение к серверу
  • Введите команду screen. Он отображает хорошее сообщение с указанием версии screen и что он находится под GPL.
  • Запустить фактическую команду.
  • В любое время нажмите ctrl-A, D, чтобы отключиться от сеанса screen. Вы увидите сообщение в строке [detached from pid.tty.server]. Обычно выходите с сервера.
  • Подключитесь к серверу и введите команду screen -x, чтобы подключиться к сеансу.
Смежные вопросы