Здрсте, ув. знатоки. Мой вопрос, возможно, покажется вам недостойным вашего внимания, однако прошу помочь мне. У меня простенькая программа, выводящая некот. инф. в stdout, и работающая под tcpclient. А также программа, кот. ждет при пом. select(), когда что-либо придет в stdin. Вопрос: почему вторая программа локально работает (в смысле в своей консоли она слышит stdin), а через tcpserver не работает. Может я опций к-ниб. не запускаю, не знаю?
>Здрсте, ув. знатоки. Мой вопрос, возможно, покажется вам недостойным вашего внимания, однако
>прошу помочь мне. У меня простенькая программа, выводящая некот. инф. в
>stdout, и работающая под tcpclient. А также программа, кот. ждет при
>пом. select(), когда что-либо придет в stdin. Вопрос: почему вторая программа
>локально работает (в смысле в своей консоли она слышит stdin), а
>через tcpserver не работает. Может я опций к-ниб. не запускаю, не
>знаю?Я, конечно, не знаток, но всё таки.
Не совсем понятно в чём именно заключается то, что делают эти программы? И почему ты решил, что вторая не работает?
Пож exec с перенаправлениями в скрипте запуска тспсервера не указал ?
>Пож exec с перенаправлениями в скрипте запуска тспсервера не указал ?
Прости, не совсем понял...
>Я, конечно, не знаток, но всё таки.
>Не совсем понятно в чём именно заключается то, что делают эти программы?
>И почему ты решил, что вторая не работает?
Клиентская пишет запрос в stdout, который, по идее, должен передаваться в socket, созданный tcpclient'ом.
Серверная делает select(1,...), а потом write(2,...), то есть по идее ждет, пока ч-либо не попадет в stdin, и затем выводит это в stderr. Но вот работает она "по идее" только при запуске ./<имя_прогр> , а при запуске tcpserver localhost ... <имя_прогр> запускается, но не слышет запросов клиентской программы.
Вот так вот.
при запуске tcpservera c ведением логов используется программа мультилог,но если ты используешь другую то и гуд тебе. дык вот чтоб tcpserver перенаправлял эти самые логи на стандартные std....в начале пишут
exec 2>&1
>при запуске tcpservera c ведением логов используется программа мультилог,но если ты используешь
>другую то и гуд тебе. дык вот чтоб tcpserver перенаправлял эти
>самые логи на стандартные std....в начале пишут
> exec 2>&1Да, я использую мультилог.
Нет, проблема в другом, т.к. это я указал.
кинь сюды. ~/run и ~/log/run
>кинь сюды. ~/run и ~/log/runвот ~/run
------------------
#! /bin/bash -e. /etc/danss/d7.conf
exec tcpserver localhost 2222 ${bindir}/server
------------------
вот ~/log/run
------------------
#!/bin/sh. /etc/danss/d7.conf
exec 2>&1
exec setuidgid ${loguser} multilog t ${logdir}/server
------------------
для клиентской такие же, но работают
>вот ~/run
>------------------
>#! /bin/bash -e
>
>. /etc/danss/d7.conf
>
>exec 2>&1
tcpserver localhost 2222 ${bindir}/server
в таком порядке все напиши или
tcpserver localhost 2222 ${bindir}/server 2>&1 &
>------------------
>вот ~/log/run
>------------------
>#!/bin/sh
>
>. /etc/danss/d7.conf
>
>exec 2>&1
не надо!!!!!!!
>
>exec setuidgid ${loguser} multilog t ${logdir}/server
>------------------
>для клиентской такие же, но работают
>>вот ~/run
>>------------------
>>#! /bin/bash -e
>>
>>. /etc/danss/d7.conf
>>
>>exec 2>&1
> tcpserver localhost 2222 ${bindir}/server
>в таком порядке все напиши или
>tcpserver localhost 2222 ${bindir}/server 2>&1 &
>
>>------------------
>>вот ~/log/run
>>------------------
>>#!/bin/sh
>>
>>. /etc/danss/d7.conf
>>
>>exec 2>&1
>не надо!!!!!!!
НАДО ОБШТБСИ или
exec setuidgid ${loguser} multilog t ${logdir}/server 2>&1
>>
>>exec setuidgid ${loguser} multilog t ${logdir}/server
>>------------------
>>для клиентской такие же, но работают
все так и сделал.
Но все равно не работает.
Абсолюдно ничего нет в логе.
тогда я думаю у тебя все дело в пермишинах на эти самые лог файлы. да каталоги..
либо в директорию нельзя писать....либо еще что..проверь
и я надеюсь что файлы run и /log/run лежать в каталоге в т.е.
/server/run
/server/log/run потому что svscan pippeline в другом случае не образуте
>и я надеюсь что файлы run и /log/run лежать в каталоге в
>т.е.
>/server/run
>/server/log/run потому что svscan pippeline в другом случае не образутеВчера не мог ответить: инет пропал.
Там все нормально, я не понимаю в чем дело.
Есть другие варианты?
А может проблема не в контроле за сервисами, а в самих программах?
Ты уверен, что программы работают (я имею ввиду сам программный код)? А то вдруг ты нам мозги паришь.
>А может проблема не в контроле за сервисами, а в самих программах?
>
>Ты уверен, что программы работают (я имею ввиду сам программный код)? А
>то вдруг ты нам мозги паришь.
Я повторюсь:
при запуске ./имя_прогр она работает (т.е выводит ответное сообщ. на ввод ч-либо в stdin)
при запуске tcpserver localhost 1111 ./имя_прогр она не воспринимает то, что выводится программой, запущеной так: tcpclient localhost 1111 ./имя_другой_прогрВопрос в том, почему такая фигня? Может я запускаю не так, как надо или еще ч-ниб...
>>А может проблема не в контроле за сервисами, а в самих программах?
>>
>>Ты уверен, что программы работают (я имею ввиду сам программный код)? А
>>то вдруг ты нам мозги паришь.
>
>
>Я повторюсь:
>при запуске ./имя_прогр она работает (т.е выводит ответное сообщ. на
>ввод ч-либо в stdin)
>при запуске tcpserver localhost 1111 ./имя_прогр она не воспринимает то,
>что выводится программой, запущеной так: tcpclient localhost 1111 ./имя_другой_прогр
>
>Вопрос в том, почему такая фигня? Может я запускаю не так, как
>надо или еще ч-ниб...
Ты знаешь, вообще то всё идёт к тому, что у тебя должно всё работать. Возможно не судьба :)) извини.
Может кто-нибудь умный найдётся и догадается, в чём дело, а я не могу.