Hallo alle zusammen,
langer Titel und fast schon die halbe Problembeschreibung. Leider habe ich nichts kürzeres gefunden. Und ich wollte auch nicht "Runtime.exec()" o.ä. als Titel verwenden. ;-)
Also: Ich habe ein Java Programm, welches unter Linux ein Skript oder Programm starten und sich dann selber beenden soll. Leider beendet das Beenden des Java Programms auch immer das Programm, welche über es selber gestartet wurde.
Ich habe ein kurzes Beispiel-Skript verfasst, welches sowohl in eine Datei, wie auch in die Konsole die aktuelle Uhrzeit schreibt:
Dann habe ich noch ein kleines Java Programm verbrochen:
Ausgeführt habe ich die Sache unter Ubuntu 10.04.3. Die Problematik hängt wohl damit zusammen, dass mit dem Java Programm der Parent Process wegfällt, was dazu führt, dass der Child Process auch gekillt wird. Wenn ich es direkt in der Shell probiere, kann ich die Clock bspw. in den Hintergrund setzen, die Verbindung lösen und die Shell beenden. Dann wird der Init Process zum Parent Process für das Skript. Aber das funktioniert über Runtime.exec() halt leider nicht.
Hat irgend jemand eine Idee, wie man das lösen könnte? ???:L
langer Titel und fast schon die halbe Problembeschreibung. Leider habe ich nichts kürzeres gefunden. Und ich wollte auch nicht "Runtime.exec()" o.ä. als Titel verwenden. ;-)
Also: Ich habe ein Java Programm, welches unter Linux ein Skript oder Programm starten und sich dann selber beenden soll. Leider beendet das Beenden des Java Programms auch immer das Programm, welche über es selber gestartet wurde.
Ich habe ein kurzes Beispiel-Skript verfasst, welches sowohl in eine Datei, wie auch in die Konsole die aktuelle Uhrzeit schreibt:
Code:
#!/bin/sh
rm -f clock.log
while [ -n "0" ]; do
d=$(date +"%H:%M:%S")
echo $d >> clock.log
echo $d
sleep 1
done
Dann habe ich noch ein kleines Java Programm verbrochen:
Java:
public class Test
{
public static void main(String[] args) throws IOException, InterruptedException
{
System.out.println("Start clock...");
process = Runtime.getRuntime().exec(
"/bin/bash /home/webfox/clock");
System.out.println("Terminate Java program.");
}
}
Ausgeführt habe ich die Sache unter Ubuntu 10.04.3. Die Problematik hängt wohl damit zusammen, dass mit dem Java Programm der Parent Process wegfällt, was dazu führt, dass der Child Process auch gekillt wird. Wenn ich es direkt in der Shell probiere, kann ich die Clock bspw. in den Hintergrund setzen, die Verbindung lösen und die Shell beenden. Dann wird der Init Process zum Parent Process für das Skript. Aber das funktioniert über Runtime.exec() halt leider nicht.
Hat irgend jemand eine Idee, wie man das lösen könnte? ???:L