1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| public static String getPPid() throws IOException {
// On utilise les varargs pour initialiser la commande :
ProcessBuilder builder = new ProcessBuilder("/bin/sh", "-c", "echo $PPID");
// On redirige le flux d'erreur vers le flux d'entrée
// (pour ne pas avoir à le traiter)
builder.redirectError();
// On lance le process :
Process process = builder.start();
try {
// On ferme le flux d'entrée (on n'en a pas besoin)
process.getOutputStream().close();
// (si on le l'avait pas redirigé on pourrait faire la même chose du flux d'erreur)
String line = null;
// On lit une ligne :
BufferedReader outReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
try {
line = outReader.readLine();
} finally {
outReader.close();
}
if (line==null) {
throw new IOException("Unable to get PID");
}
return line.trim();
} finally {
// Au cas ou ca part en vrille, on détruit le process
process.destroy();
}
} |
Partager