退出REPL而不杀死后台进程

时间:2015-03-09 11:24:34

标签: scala sbt daemon read-eval-print-loop

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

1 个答案:

答案 0 :(得分:2)

问题不在于SBT或Scala,而在于您创建的子进程。孩子需要" daemonize"独立于父进程。如何做到这取决于您正在调用的进程类型以及您正在运行的操作系统。在Linux上,使用以下脚本作为您正在调用的任何进程的包装器:

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