سؤال

لقد اتبعت البرنامج التعليمي الأساسي Cherrypy (http://www.cherrypy.org/wiki/cherrypypyutorial.). شيء واحد لم يناقش هو نشر.

كيف يمكنني تشغيل تطبيق Cherrypy كخفي و "تنسى عن ذلك"؟ ماذا يحدث إذا أعيد تشغيل الخادم؟

هل هناك وصفة قياسية؟ ربما شيء سيؤدي إلى إنشاء برنامج نصي خدمة (/etc/init.d/cherrypy ...)

شكرا!

هل كانت مفيدة؟

المحلول

هناك مخلل البرنامج المساعد ل 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

بقدر البرنامج النصي INTIT.D، أعتقد أن هناك أمثلة يمكن أن تكون غوجية.

و ال cherryd موجود في:

Virtualenv / Lib / Python2.7 / حزم الموقع / Cherrypy / Cherryd

أو في: https://bitbucket.org/cherrypy/cherrypy/src/default/cherrypy/cherryd.

نصائح أخرى

يمكن أن تكون ميكونر بسيطة جدا للاستخدام:

# 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 لإنشاء روابطنا المناسبة في Dir وقت التشغيل المناسب.

    sudo update-rc.d MyDaemonApp defaults 80

  4. sudo /etc/init.d/MyDaemonApp

كتبت هيكل عظمي تعليمي / مشروع، Cherrypy-WebApp الهيكل العظمي, ، الذي كان الهدف هو ملء الثغرات لنشر تطبيق حقيقي في العالم في دبيان * لمطور الويب. ميزاتها الموسعة cherryd لانخفاض شرف الخفي. هناك أيضا عدد من الملفات النصية الهامة وملفات التكوين init.d, nginx, monit, logrotate. وبعد يصف الجزء التعليمي كيفية وضع الأمور معا وفي النهاية أنسى أمره. وبعد يقترح الجزء الهيكل العظمي طريقة للترتيب الممكن لأصول مشروع WebApp Cherrypy.


* تمت كتابته للضغط ولكن ينبغي أن يكون نفسه عمليا هو نفسه بالنسبة للمياه.

معلومات حول خيارات المكاترة

عند استخدام المغيرين، مستندات لا تذكر الخيارات، مثل كيفية إعادة توجيه Stdout. أو ساددر. وبعد من مصدر مخلل فئة يمكنك العثور على الخيارات. كمرجع يأخذ هذا المثال من مشروعي:

# run server as a daemon
d = Daemonizer(cherrypy.engine,
               stdout='/home/pi/Gate/log/gate_access.log',
               stderr='/home/pi/Gate/log/gate_error.log')
d.subscribe()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top