我正在使用Runtime.getRuntime().exec(cmd)
启动 PostgreSQL 服务器。使用上述命令启动服务器时,我看到正在创建一个新进程来启动进程之外的Runtime.getRuntime().exec()
进程。
john 14330 0.0 0.0 128244 2568 pts/88 S+ 19:35 0:00 pg_ctl -D /u/john/postgre_test/data/ start -w
john 14334 9.5 0.0 124592 3736 pts/88 S+ 19:35 0:00 /usr/bin/postgres -D /u/john/postgre_test/data
如您所见,由于 exec() 方法创建了第一个,并且还创建了新的第二个。现在,由于服务器需要必须传递的 SSL 私钥密码。如果我通过它使用
PrintStream ps = new PrintStream(process.getOutputStream());
ps.println(keyPassword);
ps.flush();
我猜它没有设置为预期的过程,所以服务器没有启动。如何将参数传递给最近创建的进程?或者有没有其他方法可以让它工作?