Scala 退出REPL而不终止后台进程

Scala 退出REPL而不终止后台进程,scala,sbt,daemon,read-eval-print-loop,Scala,Sbt,Daemon,Read Eval Print Loop,我在REPL中使用sys.process作为shell。scala在shell中有很多用途。当然,我调用了一些外部程序。但是我发现我不能在后台进程运行的情况下离开REPL。如果我通过Ctrl-C或发送信号终止sbt,后台进程也会终止。我希望离开sbt并保持所有调用的进程运行。我该怎么做?问题不在于SBT或Scala,而在于您创建的子进程。子进程需要“daemonize”才能独立于父进程。如何做到这一点取决于您调用的进程类型和运行的操作系统。在Linux上,使用以下脚本作为您正在调用的任何进程的包

我在REPL中使用sys.process作为shell。scala在shell中有很多用途。当然,我调用了一些外部程序。但是我发现我不能在后台进程运行的情况下离开REPL。如果我通过Ctrl-C或发送信号终止sbt,后台进程也会终止。我希望离开sbt并保持所有调用的进程运行。我该怎么做?

问题不在于SBT或Scala,而在于您创建的子进程。子进程需要“daemonize”才能独立于父进程。如何做到这一点取决于您调用的进程类型和运行的操作系统。在Linux上,使用以下脚本作为您正在调用的任何进程的包装器都是有效的:

#!/bin/bash
nohup $@ 2>&1 >/dev/null &