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

Исходное сообщение
"Помогите с ротацией логов от python "

Отправлено westvovik , 29-Июл-15 11:04 
Работаю под FreeBSD

Есть скрипт на python запускается из /usr/local/etc/rc.d/

#!/bin/sh

    case "$1" in

    start)
        su pgsql -c '/usr/local/bin/python /usr/local/etc/pgqd/sqlrunner.py /usr/local/etc/pgqd/sqlrunner.conf &'
        ;;
    stop)
        pkill -f python /usr/local/etc/pgqd/sqlrunner.py /usr/local/etc/pgqd/sqlrunner.conf
        ;;
    restart)
        pkill -f python /usr/local/etc/pgqd/sqlrunner.py /usr/local/etc/pgqd/sqlrunner.conf
        su pgsql -c '/usr/local/bin/python /usr/local/etc/pgqd/sqlrunner.py /usr/local/etc/pgqd/sqlrunner.conf &'

        ;;
    *)
        echo " Usage: `basename $0` {start|stop}" >&2
        exit 64
        ;;
    esac


после запуска создается pid файл /var/run/pgqd/ id процесса

Вот строчка из newsyslog

/var/log/pgqd/sql_runner.log  pgsql:pgsql 644 7 * @T00 Z /var/run/pgqd/sql_runner.pid

Ротация происходит но процесс больше не пишет лог


Содержание

Сообщения в этом обсуждении
"Помогите с ротацией логов от python "
Отправлено Andrey Mitrofanov , 29-Июл-15 11:39 
> Работаю под FreeBSD
> Есть скрипт на python запускается из /usr/local/etc/rc.d/
> Ротация происходит но процесс больше не пишет лог

Покайтеся, грешники! Ибо Конец близок.

Пишите ваши демоны, чтоб они писали логи на stderr (http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/uni... со слов "Write your log output to standard error,"), и обуздайте ваших демонов runit-ом или daemontools-ом. Отрекитесь от поганого logrotate-а и syslog-а!!!  </...><


"Помогите с ротацией логов от python "
Отправлено Pahanivo , 29-Июл-15 13:08 
Ерись глаголишь сын мой! Постыдно и богохульно!


"Помогите с ротацией логов от python "
Отправлено Pahanivo , 29-Июл-15 13:11 
> Ротация происходит но процесс больше не пишет лог

естественно, сислога файл закрыла (текущий) и новый открыла.
тут либо kill HUP делать, либо на уровне скрипта решать, либо как наш уважаемый чуть выше глаголит ))
можно и самим newsyslog делать "/usr/local/etc/rc.d/pgsql.sh restart" после ротации


"Помогите с ротацией логов от python "
Отправлено westvovik , 30-Июл-15 11:46 
>> Ротация происходит но процесс больше не пишет лог
> естественно, сислога файл закрыла (текущий) и новый открыла.
> тут либо kill HUP делать, либо на уровне скрипта решать, либо как
> наш уважаемый чуть выше глаголит ))
> можно и самим newsyslog делать "/usr/local/etc/rc.d/pgsql.sh restart" после ротации

Грешен каюсь, а как мне через newsyslog сделать рестарт /usr/local/etc/rc.d/pgsql.sh restart, пример строки приведите еретику неграмотному?


"Помогите с ротацией логов от python "
Отправлено Pahanivo , 30-Июл-15 16:30 
упс, дико извиняюсь запаметовал по старости лет ...
там нельзя запустить скрипт, а только указать pid файл по которому newsyslog сделает kill HUP.
тыкс ...
можно сделать так - написать скрипт ротации (допихать секцию в тот же /usr/local/etc/rc.d/pgsql.sh) и назвать ее скажет rotate.
с самой секции в ручную сделать ротацию, запустиь /usr/local/etc/rc.d/pgsql.sh restart, потом по необходимости заняться архивированием.
все это пихаем в крон /usr/local/etc/rc.d/pgsql.sh rotate

или попробовать использовать тут:
/var/log/pgqd/sql_runner.log  pgsql:pgsql 644 7 * @T00 Z /var/run/pgqd/sql_runner.pid
файл /var/run/pgqd/id (если это не тотже самый /var/run/pgqd/sql_runner.pid) - суть чтобы килхапать процесс который пишет логи, а не тот который запускает процесс который пишет логи ...