2014-02-02 2 views
8

Моя цель - вращать журналы, созданные uWSGI, но когда исходный файл журнала удаляется (после сжатия), он не воссоздается снова.Регистрация wWSGI не работает, если файл журнала удален

Так что я думал, что приложение нуждается в изящном перезапуске мастер-процесса после удаления файла. Я использую этот сценарий RESTART:

/home/tester/uwsgi-18 
--reload /var/run/uwsgi/my_app_tester/my_app_tester.pid 

Перезапуск приложения, но в журнале нет.

Чтобы возобновить работу по протоколированию, мне нужно убить -2 процесс и запустить сценарий START еще раз, так что будет создан другой номер процесса, и журнал будет работать снова.

Очевидно, что я не хочу такой жесткий СТОП только для вращающихся бревен ...

Мое приложение построено с Catalyst, сервер работает Nginx и здесь сценарий uWSGI START:

/home/tester/uwsgi-18 
--master 
--daemonize /var/log/uwsgi/my_app_tester/log 
--socket /tmp/uwsgi/my_app_tester/my_app_tester.socket 
--processes 1 
--psgi /home/tester/my_app/my_app.psgi 
--pidfile /var/run/uwsgi/my_app_tester/my_app_tester.pid 
--procname-master TESTER 
-L 

Есть ли другой способ перезапустить приложение без потери соединений и протоколирования?

Спасибо заранее: Migue

+0

Это может помочь: [http://stackoverflow.com/questions/20510174/uwsgi-logrotate-not-working][1] [1]: HTTP: // StackOverflow .com/questions/20510174/uwsgi-logrotate-not-working –

+0

Это сообщение об ошибке с самим вращением файла, на всякий случай, если нет файла. Моя проблема связана с uWSGI, который не воссоздает журнал, если я не сделаю полный жесткий STOP, а затем START – MIguelele

ответ

13

У вас есть различные подходы:

1) copytruncate в сценарии LogRotate, это будет работать надежно и без помощи uWSGI

2) журнала uWSGI вращение: --log-maxsize <bytes> будет автоматически вращать журналы при достижении определенного размера

3) классическая лотерея + перезагрузка журнала, просто добавьте --log-master и триггерный перезапуск журнала с помощью http://uwsgi-docs.readthedocs.org/en/latest/MasterFIFO.html

Существуют и другие подходы (например, запуск регистрации журнала при касании файлов), но предыдущий является наиболее распространенным.

+0

Варианты 1 и 2 хорошо работают. Нет уверенности в 3, но я предпочитаю читать об этом перед тестированием. Благодаря! – MIguelele

+0

Выбран вариант 1, потому что '--log-maxsize' чувствует себя менее понятным и удобным. – BastiBen

 Смежные вопросы

  • Нет связанных вопросов^_^