LIttleBoy
06-07-2005, 18:13
Hallo,
ich wollte ein SKript schreiben, welches sich selbst als Hintergrundprozess aufruft - und dann über start / stop usw. gesteuert werden kann.
Das folgende Skript sollte als Grundgerüst herhalten:
#!/bin/sh
cleanup()
{
echo "Cleanup called"
exit 1
}
trap "cleanup" 2
case "$1" in
start)
shift
$0 daemon $1 &
echo "Daemon started with pid $!"
;;
daemon)
while [ 1 ]; do
sleep 1
done
;;
esac
Rufe ich das Skript nun wie folgt auf:
./testd daemon &
Kann ich mit
kill -2 <pid>
das Skript "georndet" verlassen, d.h. cleanup() wird aufgerufen.
Rufe ich das Skript mit:
./testd start
auf - und versuche an die (korrekte) ausgegebene PID das selbe Kommando zu schicken, bleibt das völlig wirkungslos.
Habe ich das irgendwas übersehen? Oder ist das so wie ich mir das vorstelle nicht machbar?
ich wollte ein SKript schreiben, welches sich selbst als Hintergrundprozess aufruft - und dann über start / stop usw. gesteuert werden kann.
Das folgende Skript sollte als Grundgerüst herhalten:
#!/bin/sh
cleanup()
{
echo "Cleanup called"
exit 1
}
trap "cleanup" 2
case "$1" in
start)
shift
$0 daemon $1 &
echo "Daemon started with pid $!"
;;
daemon)
while [ 1 ]; do
sleep 1
done
;;
esac
Rufe ich das Skript nun wie folgt auf:
./testd daemon &
Kann ich mit
kill -2 <pid>
das Skript "georndet" verlassen, d.h. cleanup() wird aufgerufen.
Rufe ich das Skript mit:
./testd start
auf - und versuche an die (korrekte) ausgegebene PID das selbe Kommando zu schicken, bleibt das völlig wirkungslos.
Habe ich das irgendwas übersehen? Oder ist das so wie ich mir das vorstelle nicht machbar?