On 06.11.03 22:29, (Vladimir A. Butenko) wrote:
> Естественно. Программой в ОС называется то, что ядро ОС может запустить.
> Если ядро может запускать только бинарники (как в современных Виндоузах,
> так и в Windows NT 2.0 aka OS/2), то они и есть программы. В Унихах
> exec() пожет понять, что надо запустить интерпретатор - поэтому там и
> .pl - программа.
>
> Но - не всё так плохо. Во-первых, никто не мешает Вам запустить все явно,
> "[FILE] CMD C:\APP\....." (то есть с явным указанием интерпретатора).
> Во-вторых, посмотрите на страничку Settings->WebUser. Она там с такими
> системами борется явным указанием интерпретаторов - для CGI, но,
> кажется, это работает и для Rules Exec.
А может быть, не мудрствуя лукаво, для WIN и OS/2 вместо exec() использовать system()? И проблема сразу отпадает.
> Хм. Там нету никаких flush(), потому что в CGatePro нет никаких С-шных
> библиотек. Оно пишет прямо операциями write(), и потом - close(). А вот
> чего оно не делает, так это не читает strderr и stdout - пока все в
> stdin() не запихнет. И если Ваша программа что-то в них пишет, то она
> зависнет, причем сильно раньше, чем в Unix. Проверьте, пожалуйста,
> может, в этом все дело.
В STDOUT ничего не пишется. Тут что-то другое. Я, для тестирования, завёл юзера TEST и форвард мыла на "CMD.EXE /c C:\\ПолныйПуть\\Test.CMD"@pipe Скрипт всё, что принял из STDIN'а пшет в файл и ничего не пишет вSTDOUT. Вот сам скрипт:
InFile = "STDIN:"
OutFile = "C:\TMP\123.Log"
Call LineOut OutFile, "---START---"
DO While Lines(InFile)
Call LineOut OutFile, LineIn(InFile)
End /* Do */
Call LineOut OutFile, "---FINISH---"
Call LineOut OutFile
Exit
--- Test.Cmd --
В результате отсылки мыла для юзера TEST: 1) запускается скрипт 2) Пишет в 123.Log строку "---START---" 3) Пишет всё письмо 4) После этого как-бы "зависает" пока по таймауту CGP его не прибьёт, т.е. строку "---FINISH---" мы 123.log никогда не увидим. Отсюда можно сделать вывод, что, после посылки письма в вызываемый скрипт, клиентский STDIN не закрывается. Или у Вас есть другие объяснения?
-- (c)ALexПолучено Fri Nov 07 10:36:06 2003
Этот архив был сгенерирован hypermail 2.1.8 : Fri 24 Apr 2015 - 16:12:51 MSK