Ich habe das folgende Script und möchte damit immer aktuell die Daten eines Prozesses aus /proc/<pid>/status in ein File schreiben und das so lange wie der Prozess ausgeführt wird.

Code:
#!/bin/sh
lang=$1
code=$2
#
#Check the language
if [ "$lang" = "jruby" ]; then
	jruby $code &
	#Is the process still running?
	until [ $(ps -e | grep -c $!) -ne 0 ]
	do
		cat /proc/$!/status >> /opt/data.txt
	done
elif [ "$lang" = "clojure" ]; then
	echo blabla
else 
	echo "Ungueltige Eingabe"
fi
Ohne die Schleife funktioniert es super. Um nun aber zu prüfen ob der Prozess noch aktiv ist, habe ich eine Schleife hinzugefügt. Das Problem ist jetzt, dass der Prozess den ich aufrufe, sich nicht mehr selbst beendet. Der fällt nun nach der Ausführung in sowas wie einen Sleep-Modus bis man ihn manuell killt. Das führt natürlich dazu, dass auch meine Schliefe sich nicht mehr selbst beendet.

Hat jemand eine Idee wieso das so ist und was man dagegen machen könnte? Ich hab selbst leider keine allzu grosse Erfahrung mit Shell-Scripts.

Vielen Dank!