Re: Aus einem Script einen unabhängigen Proze ss starten
-----BEGIN PGP SIGNED MESSAGE-----
Moin,
On Wed, 23 Mar 2005, Michelle Konzack wrote:
> > Kann es sein, daß das Script aus "cron" oder von "ssh $host $scriptname"
> > oder von sonst irgendeiner Instanz aus aufgerufen wird, die gleich nach
> > dem Ende des Scripts einen logout durchführt?
>
> Es ist ein 'cron' Script das alle 15 Minuten aufgerufen wird,
> aber alle 10 Sekunden die Funktion aufrufen soll.
Jetzt habe ich das Gefühl, das Problem verstanden zu haben.
Wie vermutet ist es also eine bash, die durch ihr Ende ein "SIGHUP" an die
Jobs schickt. "nohup" bringt's da nur bedingt, da es das gesamte Script
vor dem HUP schützt. Die gestarteten Jobs müssen also von der Shell gelöst
werden. </Besinnungsaufsatz>
Magst Du daher mal die kleine Erweiterung von "blah.sh" versuchen?
== cut ==
#!/bin/sh
Machwatt() {
echo "Gschdadded $1"
sleep 20;
echo "Ferdig $1"
}
i=1
while [ $i -le 3 ] ; do
echo "Starte Machwatt($i)"
Machwatt $i &
disown # ggf. -h
sleep 2
i=$(( $i + 1 ))
done
( sleep 2 ; ps axuf | grep $0 | grep -v "grep" ) &
echo "Hauptteil hat fertig"
jobs
== cut ==
Das "jobs" am Ende dient nur zum Zeigen, daß die "disown"ten Funktionen
tatsächlich keine Verbindung mehr zur Shell haben, indem "jobs" nur noch
den "ps" ausgibt. Anständige Mitteleuropäer detachen auch noch
stdout,stderr und stdin von der Shell, aber wer ist heutzutage noch
anständig? ;-)
> den das Script ./blah.sh soll ja beenden und nur die childs sollen
> weiterrennen, sprich ich habe gerade versucht, in dem Script die
> Funktion mit 'hohup' aufzurufen, was aber nicht funktionierte.
ggf. muß man den "disown" noch um "-h" ergänzen, damit die Funktion das
SIGHUP ignoriert.
> Es wird einfach ignoriert... Ich habe also das gleiche Problem
> wie mit der expandierung von [A-Z]*
Oh! Das hab ich noch nicht mal ignoriert. ;-)
t++
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
Comment: Made with pgp4pine 1.76
iQCVAwUBQkJGsCCyfuBQJJfZAQEddwQAmIUIB38WTu8ZvP9OBWo7La/PP46cakMy
YwIix9ef3HG39CPAfszIujPJZmbMTfSHzlK9FgUe4nRip1Vtbe60iImTArzqd5aC
UW/NHMLoAd5OxyXvk5sMZbyi3MRvvPM4s1aMvv+bR+g1PawjtAHj31Cilvejg4qu
l+5gPWXG00Y=
=4FC2
-----END PGP SIGNATURE-----
Reply to: