لم يستطع Nohup SBCL Ubuntu القراءة من الإدخال القياسي

StackOverflow https://stackoverflow.com/questions/2458805

  •  20-09-2019
  •  | 
  •  

سؤال

على Ubuntu قمت بتجميع SBCL 1.0.35 مع الخيوط. يمكنني استخدام SBCL بسعادة من سطر الأوامر ويعمل موقع الويب الخاص بي مع Threading ولكن عندما أختفي. عندما أحاول nohup sbcl

nohup ./src/runtime/sbcl -core output/sbcl.core

انا حصلت

(SB-IMPL :: Perror البسيط "لا يمكن القراءة من ~ S" # 9)

لقد حاولت مجموعات مختلفة من إعادة توجيه الإدخال القياسي إلى /dev /null أو ملف واستخدام خيار سطر أوامر البرنامج النصي ، لكنني لا أحصل على ما يجري.

كيف أبدأ SBCL من سطر الأوامر على Linux مع NoHup والحفاظ على تشغيل REPLIS (موقع الويب) الخاص بي؟

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

المحلول 3

أرسلني DMITY-VK على المسار الصحيح ، شكرًا لك. يحاول SBCL بدء تشغيل عند بدء تشغيله ، ويقرأ من المعيار في. عند استخدامه nohup يتم إعادة توجيه المعيار في ولا يمكن قراءتها. ثم يسقط SBCL إلى مصحح الأخطاء الذي يحاول القراءة من Standard في ... ومن هنا الحلقة التي لا نهاية لها. ال --script تقترب العلامة من حل هذا إلا أنه يحتوي على ملف (quit) بمجرد قراءة البرنامج النصي. لذلك وضعت حلقة لا نهاية لها في السيناريو وفويلا.

لذلك على خادم Ubuntu مع SBCL ، يجب أن يتيح لك بدء تشغيل خادم Hunchentoot

sudo nohup ./run-sbcl.sh --script foo.lisp > /dev/null 2> /dev/null &

حيث foo.lisp لديها خطوطه الأخيرة شيء مثل

(defvar *alive* t)

(loop (sleep 1000) (if (not *alive*) (quit)))

نصائح أخرى

Restas Web-Framework ("REST Application Server") بواسطة Andrey Moskvitin يحتوي على رمز لتصوير مثيل SBCL بشكل صحيح. نرى http://github.com/archimag/restas/blob/master/contrib/restas-daemon.lisp. يمكنك بسهولة مزق أجزاء خاصة Restas.

يمكنك بدء SBCL في شاشة GNU ثم فصل من الجلسة.

يمنحك هذا أيضًا إمكانية إعادة إعادة الاسترداد لاحقًا.

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