سؤال

لقد كتبت خادمًا ملتويًا بسيطًا -

from twisted.internet import reactor
from twisted.internet import protocol
from twisted.web import server, resource
from twisted.internet import reactor

class Index(resource.Resource):
    isLeaf = True
    def render_GET(self, request):
        args = request.args
        print 'Args: %s' %(repr(args))

print 'Serving on PORT: 8090'
site = server.Site(Index())
reactor.listenTCP(8090, site)
reactor.run()

هذا يعمل بشكل جيد 127.0.0.1:8090. لاحظ أن هذا يعمل في المحطة الطرفية (المقدمة) ، عندما أقوم بتشغيل العملية في الخلفية باستخدام nohup & ctrl+Z. لا يستجيب الخادم للطلبات. ماذا علي أن أفعل لتصفية هذا الخادم الملتوي

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

المحلول

كما ذكر Nmichael و Rakis بالفعل ، بعد "Ctrl+Z" النوع "BG" لاستئناف العملية المعلقة كوظيفة خلفية.

لتشغيله مباشرة كوظيفة خلفية ، اكتب

python myserver.py &

لتشغيله مباشرة كوظيفة خلفية لن تتوقف عند تسجيل الدخول ، اكتب

nohup python myserver.py &

لاحظ أيضا ذلك nohup, ، ليس صحيحا. انظر الاختلافات هنا: ما هو الفرق بين Nohup والخفي؟

إذا كنت ترغب حقًا في إزالة الخادم الملتوي ، فإن الخيار الأفضل هو الاستخدام twistd كما أجاب مارك لوزر.

نصائح أخرى

أوصي بالبحث في Twistd. وبهذه الطريقة ، لا داعي للقلق بشأن التعامل مع أي من البداية ، وإدارة ملفات PID ، وما إلى ذلك. الوثائق على موقعها جيدة جدًا: http://twistedmatrix.com/documents/current/core/howto/basics.html. تحقق أيضا http://twistedmatrix.com/documents/current/core/howto/tap.html لكيفية تنفيذ ملف التطبيق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top