The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
автозапуск скрипта на питоне из 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, 06:57 , 31-Янв-14 (1)
    А если так?
    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, 10:22 , 31-Янв-14 (2)
      > А если так?
      > 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, 10:39 , 31-Янв-14 (3)
        Удивительно :) , теперь все работает, скрипт пишет лог, но в один файл, первоначально созданный при первом запуске, параллельно с этим при перезапуске создает пустые файлы логов, сколько раз дохнет питоновский скрипт столько новых пустых логов создает, но при это м всеже пишет вывод в первый лог.... 0_о ..., буду разбираться...



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру