Ограничение времени исполнения в shell, Agp, 11-Май-08, 00:37 [смотреть все]Здравствуйте Подскажите пожалуйста есть ли способ ограничить время выполнения команды по времени, желательно в shell, или на худой конец в perl. Есть сценарий который ходит по каталогам и выполняет некоторые операции. Иногда эти операции могут подвиснуть, по независимым причинам. Хотелось бы ограничить время на эти операции, типа не успелось за пять минут, так и хрен с ним, идём в следующий каталог. Саму подвисшую операцию конечно неплохо прибить.
|
- Ограничение времени исполнения в shell,
ффф, 14:38 , 11-Май-08 (1)один процесс - родительский (он же таймер) запускает в фоновом режиме саму программу - когда время вышло убивает сначала дочку потом себя
- Ограничение времени исполнения в shell,
Agp, 09:12 , 12-Май-08 (2)Ага. Можете запостить какой-нибудь пример как делать таймер? и как определить имя запускаемого дочернего процесса? Себя, родительский процесс, убивать не надо.>один процесс - родительский (он же таймер) запускает в фоновом режиме саму >программу - когда время вышло убивает сначала дочку потом себя >
- Ограничение времени исполнения в shell,
distant.admin, 15:28 , 12-Май-08 (3)>Ага. Можете запостить какой-нибудь пример как делать таймер? и как определить имя >запускаемого дочернего процесса? >Себя, родительский процесс, убивать не надо. > >>один процесс - родительский (он же таймер) запускает в фоновом режиме саму >>программу - когда время вышло убивает сначала дочку потом себя >>Примерно так: #!/usr/local/bin/perl -w my $pid = fork(); if (not defined $pid) { print "resources not avilable.\n"; } if ($pid == 0) { print "CHILD0 == \$pid: $pid and \$\$: $$ \n"; sleep 20; print "CHILD1 == \$pid: $pid and \$\$: $$\n"; exit(0); } if (! $pid == 0){ print "PARENT == \$pid: $pid and \$\$: $$\n"; if (defined $pid){ sleep 10; print "kill CHILD $pid\n"; kill $pid; } }
- Ограничение времени исполнения в shell,
yuuum, 13:05 , 23-Май-08 (4)>Здравствуйте >Подскажите пожалуйста есть ли способ ограничить время выполнения команды по времени, желательно >в shell, или на худой конец в perl. Есть сценарий который >ходит по каталогам и выполняет некоторые операции. Иногда эти операции могут >подвиснуть, по независимым причинам. Хотелось бы ограничить время на эти операции, >типа не успелось за пять минут, так и хрен с ним, >идём в следующий каталог. Саму подвисшую операцию конечно неплохо прибить. есть порт во фре: http://www.freebsd.org/cgi/url.cgi?ports/sysutils/timelimit/... будет работать и под линукс(исходники по ссылке)
- Ограничение времени исполнения в shell,
madskull, 16:03 , 26-Май-08 (5)>Здравствуйте >Подскажите пожалуйста есть ли способ ограничить время выполнения команды по времени, желательно >в shell, или на худой конец в perl. Есть сценарий который >ходит по каталогам и выполняет некоторые операции. Иногда эти операции могут >подвиснуть, по независимым причинам. Хотелось бы ограничить время на эти операции, >типа не успелось за пять минут, так и хрен с ним, >идём в следующий каталог. Саму подвисшую операцию конечно неплохо прибить. (Задача решена? А то подняли тему через две недели, думай теперь... :) ) На самом деле все просто:
my_process & p1=$! # рабочий процесс sleep 5 & p2=$! # типа таймер while [ -d /proc/$p1 -a -d /proc/$p2 ]; do sleep 1; done # ждем хоть кого-нить... { kill $p1; kill $p2; } &>/dev/null # и убиваем всех
|