在 Ruby 中我有:
PTY.spawn("/usr/bin/lxc-monitor -n .+") do |i, o, pid|
# ...
end
在Scala/Java中如何实现这个功能?
我认为PTY并没有被移植到Java/Scala。您可以使用Java内置的Runtime。
def run() {
val rt = Runtime.getRuntime
val cmds = Array("/usr/bin/lxc-monitor", "-n .+")
val env = Array("TERM=VT100")
val p1 = rt.exec(cmds, env)
}
import java.io.StringWriter
import org.apache.commons.io.IOUtils
class runner {
def run() {
val rt = Runtime.getRuntime
val cmds = Array("/usr/bin/lxc-monitor", "-n .+")
val env = Array("TERM=VT100")
val p1 = rt.exec(cmds, env)
val inputStream = p1.getInputStream
val writer = new StringWriter()
IOUtils.copy(inputStream, writer, "UTF-8")
val output = writer.toString()
println(output)
}
}
我从这里得到了有关Apache Utils的想法。
lxc-monitor
需要一个 tty,但是 Java 没有这个。你可以使用expect
进行一些黑客技巧,或者只需使用lxc-info
和相关工具即可。 - J-16 SDiZ