Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Как зная PID процесса перенаправить результат выполнения на консоль?  (Прочитано 3414 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн eriser

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Как зная PID процесса перенаправить результат выполнения программы на консоль?

Имеется программа, которая получает запросы из интернета и отдаёт какие-то ответы (можно назвать её сервером) .
Запускаю её из консоли, при этом вижу какой-то лог (подключения, запросы, ответы и т.д.).
Каким образом можно увидеть этот лог на другой машине на другой консоли?
Знаю PID, могу убить процесс, но как перенаправить вывод на другую консоль?

Оффлайн dimas000

  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
а если запустить через ssh с нужной машины?
как-то так:
ssh юзер@хост... что там еще... command > /dev/ttyN
не прокатит?
да, есть еще способ: на той же машине запущаешь свою прогу, только через тулзу "script":
srcipt -f filenameоткроется такая же оболочка, только весь вывод с нее будте писаться в filename. там и запускаешь искомое.
с другой машины смотришь этот файл.
файл пишется в релтайме, т.е. как только что-то вывелось - тут же кидается в файл. как читать его в реалтайме - это другой вопрос, но мб это и не нужно будет.
лучше на "ты"

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Способы:
1) перенаправить в файл
2) запускать в screen или через nohup

Оффлайн eriser

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Спасибо за советы, но пока всё равно не понятно. Покажите пожалуйста конкретный пример. Прогуглил все варианты ваших ответов, но примера не нашёл.
Немного поясню ещё.

Программу запускаю в консоли, хотя уже сделал, чтобы она запускалась сама при включении компа. Она работает постоянно, перезапускать её крайне нежелательно. Лог по умолчанию выводится в stdout. С другого компа подключаюсь по SSH. Вижу мой поцесс PID 9882. Сакой командой направить то что выводится в stdout на консоль другого компа?
« Последнее редактирование: 31 Января 2010, 00:50:03 от eriser »

Оффлайн cergei1982

  • Участник
  • *
  • Сообщений: 108
    • Просмотр профиля
Тож не против узнать как в терминал смотреть лог например ftp vsftpd из файла vsftpd.log,можно поподробней чайнику объяснить :)
Глаза боятся,а руки делают.

Оффлайн Alie Alexandross

  • Старожил
  • *
  • Сообщений: 1576
    • Просмотр профиля
Цитировать
Программу запускаю в консоли, хотя уже сделал, чтобы она запускалась сама при включении компа. Она работает постоянно, перезапускать её крайне нежелательно. Лог по умолчанию выводится в stdout.
А если запустить программу с выводом в файл:
program > file.log
Цитировать
Тож не против узнать как в терминал смотреть лог...
cat /path/to/logЕсли извне - ssh и дальше по аналогии.
Подпись автора jillsmitt истинна...

Оффлайн eriser

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Да так можно, но если программа отработает месяц, размер лога будет 50-100 Mb. Как-бы не очень удобно, да и не нужно весь лог, нужно состояние в данный момент (посмотреть нет ли каких проблем). И ещё неплохо что-бы на том компе где зарущена программа лог тоже продолжал идти. Так как контроль ведётся в основном на нём. 

Оффлайн Say Cheese

  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
#На хосте
program > file.log
#На обеих машинах
tail -f ./file.log
И периодически тереть лог-файл.. ну или по крону скриптиком.

Второй вариант:
#На хосте
screen -S любое_имя_скрина
program
#На клиенте
ssh имяхоста
screen -x имя_открытого_скрина
« Последнее редактирование: 31 Января 2010, 15:02:01 от Say Cheese »

Оффлайн Alie Alexandross

  • Старожил
  • *
  • Сообщений: 1576
    • Просмотр профиля
Вам просто нужен скрипт, который будет запускать программу (я так понимаю с rc.d вы уже сталкивались), а её вывод - записывать в файл. Как придать этому файлу удобный для чтения вид - решать вам. Диапазон вариантов в данной ситуации: от разбивания логов по файлам с именем даты до цепляния временного префикса, или закладок типа ****`date`**** удобных для поиска.
Подпись автора jillsmitt истинна...

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Да так можно, но если программа отработает месяц, размер лога будет 50-100 Mb. Как-бы не очень удобно, да и не нужно весь лог,

В системе по умолчанию есть logrotate - надо просто нужный лог вписать в конфиг.
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн MA3X

  • Активист
  • *
  • Сообщений: 649
    • Просмотр профиля
Если прога документирована - смотреть, не умеет ли она сама класть по логам.
Если доступны исходники - то gcc вам в руки.
Примерно так.
;)
Microsoft isn't the answer.
Microsoft is the question, and the answer is NO.

 

Страница сгенерирована за 0.055 секунд. Запросов: 23.