Работаю под 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
Ротация происходит но процесс больше не пишет лог
> Работаю под 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-а!!! </...><
Ерись глаголишь сын мой! Постыдно и богохульно!
> Ротация происходит но процесс больше не пишет логестественно, сислога файл закрыла (текущий) и новый открыла.
тут либо kill HUP делать, либо на уровне скрипта решать, либо как наш уважаемый чуть выше глаголит ))
можно и самим newsyslog делать "/usr/local/etc/rc.d/pgsql.sh restart" после ротации
>> Ротация происходит но процесс больше не пишет лог
> естественно, сислога файл закрыла (текущий) и новый открыла.
> тут либо kill HUP делать, либо на уровне скрипта решать, либо как
> наш уважаемый чуть выше глаголит ))
> можно и самим newsyslog делать "/usr/local/etc/rc.d/pgsql.sh restart" после ротацииГрешен каюсь, а как мне через newsyslog сделать рестарт /usr/local/etc/rc.d/pgsql.sh restart, пример строки приведите еретику неграмотному?
упс, дико извиняюсь запаметовал по старости лет ...
там нельзя запустить скрипт, а только указать 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) - суть чтобы килхапать процесс который пишет логи, а не тот который запускает процесс который пишет логи ...