Process.available() always false

I have a program running on linux that prints something and I want to read it from arduino but the process.available() is always false. The python program prints some data but the yun cant read them. Why it can’t read the output?

#include <Process.h>

void setup() {
  Serial.begin(9600);  // initialize serial communication
  while (!Serial);     // do nothing until the serial monitor is opened

  Serial.println("Starting bridge...\n");
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
  Bridge.begin();  // make contact with the linux processor
  digitalWrite(13, HIGH);  // Led on pin 13 turns on when the bridge is ready

  delay(2000);  // wait 2 seconds
}

void loop() {

  Process process;  // initialize a new process

  process.runShellCommand("python ~/Server.py");

  while (process.available()) {
    char c = process.read();
    Serial.print(c);
  }
}

The python program prints with the command “print”

runShellCommand waits for the command to end before going on with the sketch. Since your python script is named Server, I guess it stays alive and never ends
Try with runShellCommandAsynchronously

That works. Thanks for the help.