Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > ограничение времени работы скрипта


Автор: R0nin 29.3.2010, 12:18
вопрос такой.
есть автоматически запускаемый скрипт. который иногда подвисает.
нужно убивать его если это произошло.
в php есть функция ограничивающая время работы скрипта set_time_limit()
есть ли что-то похожее в питоне?

Автор: ecspertiza 29.3.2010, 14:23
Хм... я конечно не уверен ,но по моему нужно поковыряться в настройках того чем ты его запускаешь, то есть если это стандартный Python интерпретатор то наверняка у него в настройках есть что то подобное, или если это Apathe ,то и  подавно что то быть должно.

Автор: R0nin 29.3.2010, 15:09
запускается кроном .sh фалом
Код

python demon.py

Автор: DonJuansMagicPants 5.6.2010, 12:50
cron'ом же убивать его через некий отрезок времени не судьба ?

Автор: Dagger 5.6.2010, 14:23
Тю, ну ив опрос.  Вот за 3 минуты на баше простой пример:

Код

#!/bin/bash

APP='/somepath/script.py'
CONTROLLER='/somepath/controller.sh'

# execute app
$APP &
PID=$!

# execute controller
$CONTROLLER $PID &


controller.sh
Код

#!/bin/bash

PID=$1

# exit if no pid specified
[ -z "$PID" ] && echo "Please, specify process PID" && exit(1)

# timeout in seconds
TIMEOUT=1


STARTTIME=`date '+%s'`

while true; do
  CURTIME=`date '+%s'`
  OFFSET=$(($CURTIME-$STARTTIME))
  if [ $OFFSET -ga $TIMEOUT ]; then
     kill $PID

     # exit when process was killed
     eixt 1 
  fi
  # wait 1 second before next check
  sleep 1
done


Можно все и "красивше" написать, но даже этот работать будет

Автор: scorpil 14.6.2010, 01:14
А так:
Цитата

python foo.py & sleep 60 && killall -9 foo.py

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)