Развертывание CherryPy (демон)

Я выполнил основной учебник CherryPy ( http://www.cherrypy.org/wiki/CherryPyTutorial ). Одно, что не обсуждается, – это развертывание.

Как я могу запустить приложение CherryPy в качестве демона и «забыть об этом»? Что произойдет, если сервер перезагрузится?

Есть ли стандартный рецепт? Возможно, что-то, что создаст скрипт службы (/etc/init.d/cherrypy …)

Благодаря!

3 Solutions collect form web for “Развертывание CherryPy (демон)”

Существует плагин Daemonizer для CherryPy, включенный по умолчанию, который полезен для его запуска, но самым простым способом для простых случаев является использование скрипта cherryd:

> cherryd -h Usage: cherryd [options] Options: -h, --help show this help message and exit -c CONFIG, --config=CONFIG specify config file(s) -d run the server as a daemon -e ENVIRONMENT, --environment=ENVIRONMENT apply the given config environment -f start a fastcgi server instead of the default HTTP server -s start a scgi server instead of the default HTTP server -i IMPORTS, --import=IMPORTS specify modules to import -p PIDFILE, --pidfile=PIDFILE store the process id in the given file 

Что касается сценария init.d, я думаю, что есть примеры, которые могут быть Googled.

И cherryd найдена в вашем:

virtualenv / Библиотека / python2.7 / сайт-пакеты / CherryPy / cherryd

или в: https://bitbucket.org/cherrypy/cherrypy/src/default/cherrypy/cherryd

Daemonizer может быть довольно прост в использовании:

 # this works for cherrypy 3.1.2 on Ubuntu 10.04 from cherrypy.process.plugins import Daemonizer # before mounting anything Daemonizer(cherrypy.engine).subscribe() cherrypy.tree.mount(MyDaemonApp, "/") cherrypy.engine.start() cherrypy.engine.block() 

Здесь есть достойный HOWTO для стиля SysV.

Обобщить:

  1. Создайте файл с именем для вашего приложения в /etc/init.d который вызывает /bin/sh

    sudo vim /etc/init.d/MyDaemonApp

     #!/bin/sh echo "Invoking MyDaemonApp"; /path/to/MyDaemonApp echo "Started MyDaemonApp. Tremble, Ye Mighty." 
  2. Сделать его исполняемым

    sudo chmod +x /etc/init.d/MyDaemonApp

  3. Запустите update-rc.d чтобы создать наши правильные ссылки в правильной директории runtime.

    sudo update-rc.d MyDaemonApp defaults 80

  4. sudo /etc/init.d/MyDaemonApp

Я написал скелет учебника / проекта, cherrypy-webapp-skeleton , целью которого было заполнить пробелы для развертывания реального приложения CherryPy на Debian * для веб-разработчика. Он имеет расширенную cherryd для снижения привилегий демона. Существует также ряд важных сценариев и файлов конфигурации для init.d , nginx , monit , logrotate . В части учебника описывается, как соединить вещи и, в конце концов, забыть об этом . Скелетная часть предлагает способ возможной компоновки активов проекта CherryPy webapp.


* Это было написано для Squeeze, но практически это должно быть одинаково для Wheezy.

Python - лучший язык программирования в мире.