The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Перенаправление (перехват) stdout уже запущенного процесса"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Перенаправление (перехват) stdout уже запущенного процесса"  +/
Сообщение от scream email(ok) on 09-Мрт-06, 13:15 
Можно ли перенаправить вывод уже запущенного процесса на свою консоль?
Подробнее о проблеме:
коннекчусь на FreeBSD через ssh, запускаю там свою прогу (bittorent-ncurses) и смотрю на его аскетичный, но милый интерфейс. Потом в какой-то момент или перегружаю свой комп, или теряю сеть (ну или еще там что-нить такое). Переконнекчиваюсь. Вижу через ps и на трекере, что bittorent еще работает, причем вполне нормально. Но хочется увидеть его stdout, потеряный в веках при дисконнекте putty.
Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Перенаправление (перехват) stdout уже запущенного процесса"  +/
Сообщение от gr (??) on 09-Мрт-06, 13:53 
>Можно ли перенаправить вывод уже запущенного процесса на свою консоль?
>Подробнее о проблеме:
>коннекчусь на FreeBSD через ssh, запускаю там свою прогу (bittorent-ncurses) и смотрю
>на его аскетичный, но милый интерфейс. Потом в какой-то момент или
>перегружаю свой комп, или теряю сеть (ну или еще там что-нить
>такое). Переконнекчиваюсь. Вижу через ps и на трекере, что bittorent еще
>работает, причем вполне нормально. Но хочется увидеть его stdout, потеряный в
>веках при дисконнекте putty.


man screen

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Перенаправление (перехват) stdout уже запущенного процесса"  +/
Сообщение от scream (ok) on 09-Мрт-06, 14:19 
>man screen

Прочел. Описание работы виртуальных консолей. Не понял, каким образом исходя из этого решить мою проблему. Я, возможно, немного не правильно описал проблему.

>Можно ли перенаправить вывод уже запущенного процесса на свою консоль?

Здесь я имел ввиду не консоль как таковую, а виртуальную консоль, открытую в окне установленной через Putty сессии.
При запуске ps -aux я вижу следующее:
USER       PID %CPU %MEM   VSZ  RSS  TT  STAT STARTED      TIME COMMAND
root        10 88.6  0.0     0   12  ??  RL   22Feb06 18978:48.06  (idle)
root      1950  4.4  5.3 15268 13632  p0- S     7:22AM  16:26.84 /usr/local/bin/python /usr/local/bin/bittorrent-curses
root      1949  2.2  5.0 14552 12940  p1- S     7:22AM  20:33.52 /usr/local/bin/python /usr/local/bin/bittorrent-curses
......
root     45296  0.0  0.4  1336  916  p0- I     1Mar06   0:00.08 su (bash)
root     53516  0.0  0.4  1336  916  p1- I     2Mar06   0:00.15 su (bash)
......
root      3247  0.0  0.5  1636 1304  p0  I    11:39AM   0:00.02 su
root      3248  0.0  0.4  1332  912  p0  S    11:39AM   0:00.02 su (bash)
root      3669  0.0  0.3  1412  868  p0  R+    1:07PM   0:00.00 ps -uax

Т.е. процессы bittorrent-curses висят на консолях p0- p1-. Вот их то вывод я их хочу посмотреть.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Перенаправление (перехват) stdout уже запущенного процесса"  +/
Сообщение от mezantrop (??) on 09-Мрт-06, 14:40 
>>man screen
>
>Прочел. Описание работы виртуальных консолей. Не понял, каким образом исходя из этого
>решить мою проблему. Я, возможно, немного не правильно описал проблему.
>
>>Можно ли перенаправить вывод уже запущенного процесса на свою консоль?
>
>Здесь я имел ввиду не консоль как таковую, а виртуальную консоль, открытую
>в окне установленной через Putty сессии.
>При запуске ps -aux я вижу следующее:
>USER       PID %CPU %MEM  
>VSZ  RSS  TT  STAT STARTED    
>  TIME COMMAND
>root        10 88.6  0.0
>    0   12  ??  
>RL   22Feb06 18978:48.06  (idle)
>root      1950  4.4  5.3 15268
>13632  p0- S     7:22AM  16:26.84
>/usr/local/bin/python /usr/local/bin/bittorrent-curses
>root      1949  2.2  5.0 14552
>12940  p1- S     7:22AM  20:33.52
>/usr/local/bin/python /usr/local/bin/bittorrent-curses
>......
>root     45296  0.0  0.4  1336
> 916  p0- I     1Mar06  
> 0:00.08 su (bash)
>root     53516  0.0  0.4  1336
> 916  p1- I     2Mar06  
> 0:00.15 su (bash)
>......
>root      3247  0.0  0.5  
>1636 1304  p0  I    11:39AM  
> 0:00.02 su
>root      3248  0.0  0.4  
>1332  912  p0  S    11:39AM
>  0:00.02 su (bash)
>root      3669  0.0  0.3  
>1412  868  p0  R+    1:07PM
>  0:00.00 ps -uax
>
>Т.е. процессы bittorrent-curses висят на консолях p0- p1-. Вот их то вывод
>я их хочу посмотреть.

watch

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Перенаправление (перехват) stdout уже запущенного процесса"  +/
Сообщение от scream (ok) on 09-Мрт-06, 17:43 
man ps
......
tt        An abbreviation for the pathname of the controlling terminal, if any.  The abbreviation consists of the three letters following /dev/tty, or, for the console, ``con''.  This is followed by a ``-'' if the process can no longer reach that controlling terminal (i.e., it has been revoked).
.......

Т.е. процессы bittorrent-curses НЕ висят на консолях p0 и p1. Они там раньше были. А куда теперь идет их вывод и как его перехватить? Вот в чем вопрос.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Перенаправление (перехват) stdout уже запущенного процесса"  +/
Сообщение от gr (ok) on 09-Мрт-06, 23:28 
>man ps
>......
> tt        An abbreviation for
>the pathname of the controlling terminal, if any.  The abbreviation
>consists of the three letters following /dev/tty, or, for the console,
>``con''.  This is followed by a ``-'' if the process
>can no longer reach that controlling terminal (i.e., it has been
>revoked).
>.......
>
>Т.е. процессы bittorrent-curses НЕ висят на консолях p0 и p1. Они там
>раньше были. А куда теперь идет их вывод и как его
>перехватить? Вот в чем вопрос.

ну так я и говорю: заходишь в шелл
запускаешь screen
запускаешь консольное приложение
CTRL-a d
отлогиниваешься

заходишь снова
screen -r -d
получаешь сессию, которая работала пока тебя не было

делаешь так сколько угодно раз.

что касается того, о чем ты говоришь, почитай о понятии "управляющий терминал", о сигнале HUP, о поведении программ (тут имеется в виду правильное поведение) при поступлении сигнала HUP.

curses нужен именно терминал, не просто stdout, а в этом деле поможет screen

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Перенаправление (перехват) stdout уже запущенного процесса"  +/
Сообщение от scream (??) on 10-Мрт-06, 19:27 
Про screen понял. Но только его нет в моей фряхе. Я так понял, что его там и не должно быть изначально. Попробую поставить. А что касается watch, тут уж простите за глупость, ничего не понял, как он может мне помочь. Насколько мне стало ясно, он может дать мне доступ к вводу-выводы другого терминала. Но ведь того терминала, на котором работал bittorrent уже нет, как же я к нему подключусь?!
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Перенаправление (перехват) stdout уже запущенного процесса"  +/
Сообщение от gr (??) on 10-Мрт-06, 19:53 
>Про screen понял. Но только его нет в моей фряхе. Я так
>понял, что его там и не должно быть изначально. Попробую поставить.
>А что касается watch, тут уж простите за глупость, ничего не
>понял, как он может мне помочь. Насколько мне стало ясно, он
>может дать мне доступ к вводу-выводы другого терминала. Но ведь того
>терминала, на котором работал bittorrent уже нет, как же я к
>нему подключусь?!


почитай handbook (про порты, ports). хендбук по-моему вообще образец лаконичного и понятного рууководства.

поставить скрин:

whereis screen
cd /usr/ports/sysutils/screen
make install clean

потом /usr/local/bin/screen и тд

это (порты), скажем так (товарищи будут пинать) что-то вроде инсталлятора всего софта, который существует для free.

watch предназначен за слежением за другим активным терминалом, и, имхо, ненужный инструмент (тем более что линухе он совсем другое делает)


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Перенаправление (перехват) stdout уже запущенного процесса"  +/
Сообщение от mainak on 17-Ноя-09, 12:25 
>watch предназначен за слежением за другим активным терминалом, и, имхо, ненужный инструмент
>(тем более что линухе он совсем другое делает)

watch -W p0(например) дает и смотреть и рулить указанной консолью, так что весьма нужный, тем более удобное в случае если гуляешь через что-то с ограничением на количество сессий, ctrl+x p1 и на другом ауте

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру