SBT detener ejecutar sin salir
¿Cómo se termina una ejecución en SBT sin salir?
Estoy intentando CTRL+C pero sale SBT. ¿Hay alguna forma de salir solo de la aplicación en ejecución mientras se mantiene SBT abierto?
3 answers
En la configuración predeterminada, sus ejecuciones ocurren en la misma JVM que sbt está ejecutando, por lo que no puede eliminarlas fácilmente por separado.
Si ejecuta su ejecución en una JVM bifurcada separada, como se describe en Forking, entonces puede eliminar esa JVM (por cualquier medio que ofrezca su sistema operativo) sin afectar la JVM de sbt:
fork in run := true
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-26 16:50:46
Desde la versión sbt 0.13.5 puedes añadirla a tu compilación.sbt
cancelable in Global := true
Se define como "Habilita (true) o deshabilita (false) la capacidad de interrumpir la ejecución de tareas con CTRL + C." en la definición de teclas
Si está utilizando Scala 2.12.7 + también puede cancelar la compilación con CTRL + C. Referencia https://github.com/scala/scala/pull/6479
Hay algunos errores comunicado:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-10-02 09:01:12
He encontrado lo siguiente útil cuando tengo el control sobre el bucle principal de la aplicación que se ejecuta desde sbt.
Le digo a sbt que bifurque cuando ejecute la aplicación (en build.sbt):
fork in run := true
También le digo a sbt que reenvíe stdin desde el shell sbt a la aplicación (en build.sbt):
connectInput in run := true
Finalmente, en el hilo principal de la aplicación, espero el fin del archivo en stdin y luego apago la JVM:
while (System.in.read() != -1) {}
logger.warn("Received end-of-file on stdin. Exiting")
// optional shutdown code here
System.exit(0)
Por supuesto, puede usar cualquier hilo para leer stdin y apagado, no solo el hilo principal.
Finalmente, iniciar sbt, opcionalmente cambiar al subproyecto que desea ejecutar, ejecutar.
Ahora, cuando desee detener el proceso, cierre su stdin escribiendo CTRL-D en el shell sbt.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-28 20:27:06