如何解决Scala 外部进程被挂起
我们需要将以下命令作为外部进程运行,并通过输入/输出处理以插入数据并获取输出。
docker-compose run --rm test-service
源代码示例如下:
// For process stuff
import scala.sys.process._
import java.io.File
import scala.sys.process._
import java.io._
object ProcessClient{
def main(args: Array[String]) {
val process = Process ("docker-compose run --rm test-service",new File("./"))
val io = new ProcessIO (
writer,out => {
scala.io.Source.fromInputStream(out).getLines.foreach(println)
},err => {
scala.io.Source.fromInputStream(err).getLines.foreach(println)
})
process.run(io).exitValue()
}
def reader(input: java.io.InputStream) = {
// read here
}
def writer(output: java.io.OutputStream) = {
// write here
//
}
// TODO: implement an error logger
}
结果: 进程被挂起,没有提供任何状态。
还尝试了简单的运行方法:
Process ("docker-compose run --rm test-service",new File("./"))!
Process ("docker-compose run --rm test-service",new File("./")).!
docker-compose.yml 文件的内容
version: '3.7'
services:
test-service:
container_name: cont1
image: debian
command:
- bash
- -c
- |
ls;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。