Pregunta

En Ubuntu me sbcl 1.0.35 compilado con rosca. Puedo usar sin problemas sbcl desde la línea de comandos y mi página web Hunchentoot trabaja con rosca pero cuando cerrar la sesión que se ha ido. Cuando intento nohup sbcl

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

consigo

(SB-IMPL :: SIMPLE-STREAM-PERROR "No se pudo leer ~ S" # 9)

He intentado varias combinaciones de redirigir la entrada estándar a / dev / null o un archivo y usando la opción de línea de comando de script, pero no lo entiendo muy bien lo que está pasando.

¿Cómo inicio sbcl desde la línea de comandos en Linux con nohup y mantener mi repl (página web) que se ejecuta?

¿Fue útil?

Solución 3

Dmity-VK me envió en el camino correcto, gracias. SBCL intenta iniciar una repl cuando se inicia, y se lee de la norma. Cuando se utiliza el estándar en nohup se redirige y no se puede leer. SBCL luego cae al depurador, que intenta leer desde la entrada estándar ... de ahí el bucle sin fin. La etiqueta --script se acerca a la solución de este, excepto que tiene un (quit) una vez que el guión ha sido leído. Por lo que poner un bucle sin fin en mi guión y listo.

así en un servidor Ubuntu con sbcl esto debería permitir que se inicia un servidor Hunchentoot

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

donde foo.lisp tiene como última líneas algo así como

(defvar *alive* t)

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

Otros consejos

RESTAS Web-marco ( "Aplicación RESTO Servidor") por Andrey Moskvitin contiene código para demonizar adecuadamente ejemplo SBCL. Ver http://github.com/archimag/restas/blob /master/contrib/restas-daemon.lisp. Usted puede rasgar fácilmente partes RESTAS específicos.

Se podría empezar SBCL en Gnu pantalla y luego desprenderse de la sesión.

Esto también le da la posibilidad de volver a colocar a su REPL más tarde.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top