نشر Cherrypy (الخفي)
-
13-09-2019 - |
سؤال
لقد اتبعت البرنامج التعليمي الأساسي 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 هنا.
كي تختصر:
إنشاء ملف باسم التطبيق الخاص بك في
/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."
اجعلها قابلة للتنفيذ
sudo chmod +x /etc/init.d/MyDaemonApp
يركض
update-rc.d
لإنشاء روابطنا المناسبة في Dir وقت التشغيل المناسب.sudo update-rc.d MyDaemonApp defaults 80
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()