URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9823
[ Назад ]

Исходное сообщение
"автозапуск скрипта на питоне из bash; как?"

Отправлено cmd4 , 31-Янв-14 05:49 
Здаров всем.

вот столкнулся с проблемой: имеется скрипт на питоне который переодически дохнет, по этому его надо перезапускать(лучше конечно чтоб он не дох, но я в питоне ноль).
для перезапуска написал такой скрипт:
----------------------------------------------
#!/bin/bash
tmp=""
program="python"
checkpoint="0"

while [ 1 == 1 ];do             #бесконечный цикл
pid=`pidof $program`
if [ -z "$pid" ]; then          #если pidof не дает номер процесса, выполнить.
pid=`pidof $program`
sleep 5
echo "отработал $checkpoint циклов и сдох" >>tmplog
point=`date`
echo "перезапуск скрипта $point" >>tmplog
checkpoint="0"
randomfn=`date +%Y%m%d%k%M%S%N | tr -d ' '`
/usr/bin/python /usr/local/bin/script -w /home/user/log/$randomfn.log
fi
checkpoint=$(( $checkpoint + 1 ))
sleep 1
done
---------------------------------------------------------------
так вот не могу понять почему если я запускаю этот скрипт впервый раз, т.е. вводя имя скрипта в командной строке, то скрипт на питоне нормально стартует и пишет лог, но в дальнейшем после смерти питоновского скрипта он более не запускается, тоесть $randomfn.log создается каждые пять секунд но гребаный скрипт на питоне не отрабатывает, в итоге куча пустых логов в папке. так как мне этого засранца запустить то? думал в путях дело "не видит", так после прописки полных - эффект тот-же..... что делать хз


Содержание

Сообщения в этом обсуждении
"автозапуск скрипта на питоне из bash; как?"
Отправлено _KUL , 31-Янв-14 06:57 
А если так?
res=`/bin/ps aux | grep NAMESCRIPT | wc -l`
if [ ${res} -lt 2 ]; then #проверить, 1 или 2, т.к. может быть минимум 1 всегда, если настроен вывод grep --colour=auto
`/usr/bin/python /usr/local/bin/script -w /home/user/log/script.log`
fi

"автозапуск скрипта на питоне из bash; как?"
Отправлено cmd4 , 31-Янв-14 10:22 
> А если так?
> res=`/bin/ps aux | grep NAMESCRIPT | wc -l`
> if [ ${res} -lt 2 ]; then #проверить, 1 или 2, т.к.
> может быть минимум 1 всегда, если настроен вывод grep --colour=auto
> `/usr/bin/python /usr/local/bin/script -w /home/user/log/script.log`
> fi

вроде работает, в кавычках дело чтоли? `` , ладненько, подожду пока еще пару раз сдохнет,

благодарю :)


"автозапуск скрипта на питоне из bash; как?"
Отправлено cmd4 , 31-Янв-14 10:39 
Удивительно :) , теперь все работает, скрипт пишет лог, но в один файл, первоначально созданный при первом запуске, параллельно с этим при перезапуске создает пустые файлы логов, сколько раз дохнет питоновский скрипт столько новых пустых логов создает, но при это м всеже пишет вывод в первый лог.... 0_о ..., буду разбираться...