Страница 1 из 1

Задержки в выполнении NCF файла

СообщениеДобавлено: 03 авг 2006, 08:41
Танин Виктор
Добрый день. Есть необходимость запустить нескольок команд на сервере последовательно, т.е. написал run.ncf вида

command1
command2

Хотелось бы, чтобы command2 не запускалась до тех пор, пока command1 не закончит свою работу (как в однозадачном МС ДОСе)
Можно между ними вставить delay либо "?", однако время ожидания надо подбирать эмпирически.

Возможно ли осуществить желаемое? или всё-таки просчитать время и пустить всё по крону придётся?

СообщениеДобавлено: 03 авг 2006, 11:55
Igor Bashinsky
delay <время в сек.>

СообщениеДобавлено: 03 авг 2006, 15:10
Алексей Волков
В 6.5 есть несколько команд, нач. на % (%IF, %WHILE, и т.д.)

Так вот, в вашем случае можно сделать так (знаю, что кривовато):

1) command1.ncf:
setenv curcom="command1"
... ваши команды
setenv curcom="none"

2)

COMMAND1.NCF
%while (env curcom!="none") {cmd delay 1}
COMMAND2.NCF

СообщениеДобавлено: 04 авг 2006, 02:32
Танин Виктор
Алексей Волков писал(а):В 6.5 есть несколько команд, нач. на % (%IF, %WHILE, и т.д.)

Так вот, в вашем случае можно сделать так (знаю, что кривовато):

1) command1.ncf:
setenv curcom="command1"
... ваши команды
setenv curcom="none"

2)

COMMAND1.NCF
%while (env curcom!="none") {cmd delay 1}
COMMAND2.NCF


К сожалению, такая конструкция не даёт желаемого результата. В command1.ncf команды запускаются одна за другой, и не дожидаясь "возврата" меняется переменная curcom. И идёт выполнение уже command2.ncf
Похоже осуществить задуманное не получится. Буду высчитывать время и делать запас. И всё по крону гонять.

СообщениеДобавлено: 04 авг 2006, 09:29
capricious
обратите свой взор на TASKMASTER

www.avanti-tech.com

СообщениеДобавлено: 07 авг 2006, 07:11
Танин Виктор
2capricious
а про таскмастер я, признаться, забыл. спасибо за наводку, попробую наваять скриптик

Re: Задержки в выполнении NCF файла

СообщениеДобавлено: 07 авг 2006, 08:34
Dimerson
Танин Виктор писал(а):Добрый день. Есть необходимость запустить нескольок команд на сервере последовательно, т.е. написал run.ncf вида

command1
command2

Хотелось бы, чтобы command2 не запускалась до тех пор, пока command1 не закончит свою работу (как в однозадачном МС ДОСе)
Можно между ними вставить delay либо "?", однако время ожидания надо подбирать эмпирически.

Возможно ли осуществить желаемое? или всё-таки просчитать время и пустить всё по крону придётся?


не поможет ли использование perl.nlm или bash.nlm ?

Re: Задержки в выполнении NCF файла

СообщениеДобавлено: 07 авг 2006, 08:49
Танин Виктор
Dimerson писал(а):
не поможет ли использование perl.nlm или bash.nlm ?


В перле под NW насколько я знаю, system() не дожидается возвращения, поэтому надо опять-таки самому контролировать процесс окончания работы модуля/команды.

Как поступить в bash не знаю.

СообщениеДобавлено: 07 авг 2006, 09:28
Орлов Алексей
bash как и cmd в win ждет завершения выполнения команды. Можно сделать проверку на if

СообщениеДобавлено: 10 авг 2006, 02:08
Танин Виктор
Орлов Алексей, в bash запускать ncf или как-то по другому? Подробнее расскажите, пожалуйста.

СообщениеДобавлено: 10 авг 2006, 10:39
Орлов Алексей
Нет в самом bashe можно писать програмки, довольно не плохой язык, хотя имеющий свои правила :) Посмотрите описане команд для nux систем и все поймете. NCF я думаю там запустить не удастся а вот создать файлик с командами я думаю да. Как все это запускать пок ане смотрел, но думаю можно, для чего же его туда интегрировали. А написание проверки довольно простое
if условие then что то сделать else что то другое end как в логин скрипте :)