Можно ли перенаправить вывод уже запущенного процесса на свою консоль?
Подробнее о проблеме:
коннекчусь на FreeBSD через ssh, запускаю там свою прогу (bittorent-ncurses) и смотрю на его аскетичный, но милый интерфейс. Потом в какой-то момент или перегружаю свой комп, или теряю сеть (ну или еще там что-нить такое). Переконнекчиваюсь. Вижу через ps и на трекере, что bittorent еще работает, причем вполне нормально. Но хочется увидеть его stdout, потеряный в веках при дисконнекте putty.
>Можно ли перенаправить вывод уже запущенного процесса на свою консоль?
>Подробнее о проблеме:
>коннекчусь на FreeBSD через ssh, запускаю там свою прогу (bittorent-ncurses) и смотрю
>на его аскетичный, но милый интерфейс. Потом в какой-то момент или
>перегружаю свой комп, или теряю сеть (ну или еще там что-нить
>такое). Переконнекчиваюсь. Вижу через ps и на трекере, что bittorent еще
>работает, причем вполне нормально. Но хочется увидеть его stdout, потеряный в
>веках при дисконнекте putty.
man screen
>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-. Вот их то вывод я их хочу посмотреть.
>>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
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. Они там раньше были. А куда теперь идет их вывод и как его перехватить? Вот в чем вопрос.
>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
Про screen понял. Но только его нет в моей фряхе. Я так понял, что его там и не должно быть изначально. Попробую поставить. А что касается watch, тут уж простите за глупость, ничего не понял, как он может мне помочь. Насколько мне стало ясно, он может дать мне доступ к вводу-выводы другого терминала. Но ведь того терминала, на котором работал bittorrent уже нет, как же я к нему подключусь?!
>Про screen понял. Но только его нет в моей фряхе. Я так
>понял, что его там и не должно быть изначально. Попробую поставить.
>А что касается watch, тут уж простите за глупость, ничего не
>понял, как он может мне помочь. Насколько мне стало ясно, он
>может дать мне доступ к вводу-выводы другого терминала. Но ведь того
>терминала, на котором работал bittorrent уже нет, как же я к
>нему подключусь?!
почитай handbook (про порты, ports). хендбук по-моему вообще образец лаконичного и понятного рууководства.поставить скрин:
whereis screen
cd /usr/ports/sysutils/screen
make install cleanпотом /usr/local/bin/screen и тд
это (порты), скажем так (товарищи будут пинать) что-то вроде инсталлятора всего софта, который существует для free.
watch предназначен за слежением за другим активным терминалом, и, имхо, ненужный инструмент (тем более что линухе он совсем другое делает)
>watch предназначен за слежением за другим активным терминалом, и, имхо, ненужный инструмент
>(тем более что линухе он совсем другое делает)watch -W p0(например) дает и смотреть и рулить указанной консолью, так что весьма нужный, тем более удобное в случае если гуляешь через что-то с ограничением на количество сессий, ctrl+x p1 и на другом ауте