بيثون ملتوية الخفي
-
30-09-2019 - |
سؤال
لقد كتبت خادمًا ملتويًا بسيطًا -
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 لكيفية تنفيذ ملف التطبيق.