Processo Java com fluxo de entrada / saída

Eu tenho o seguinte exemplo de código abaixo. Em que você pode inserir um comando no shell bash, ou seja,echo test e ter o resultado ecoado de volta. No entanto, após a primeira leitura. Outros fluxos de saída não funcionam?

Por que isso ou estou fazendo algo errado? Meu objetivo final é criar uma tarefa agendada Threaded que execute um comando periodicamente para / bash para que oOutputStream eInputStream teria que trabalhar em conjunto e não parar de trabalhar. Eu também estou tendo o errojava.io.IOException: Broken pipe alguma ideia?

Obrigado.

String line;
Scanner scan = new Scanner(System.in);

Process process = Runtime.getRuntime ().exec ("/bin/bash");
OutputStream stdin = process.getOutputStream ();
InputStream stderr = process.getErrorStream ();
InputStream stdout = process.getInputStream ();

BufferedReader reader = new BufferedReader (new InputStreamReader(stdout));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin));

String input = scan.nextLine();
input += "\n";
writer.write(input);
writer.flush();

input = scan.nextLine();
input += "\n";
writer.write(input);
writer.flush();

while ((line = reader.readLine ()) != null) {
System.out.println ("Stdout: " + line);
}

input = scan.nextLine();
input += "\n";
writer.write(input);
writer.close();

while ((line = reader.readLine ()) != null) {
System.out.println ("Stdout: " + line);
}

questionAnswers(3)

yourAnswerToTheQuestion