PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Prozesse handeln



kressevadder
15.06.03, 20:27
Hallo,

#!/bin/bash
(sleep 60)&
echo $!>lock_pid

obriges script startet sleep im Hintergrund und schreibt die PID des zuletzt im Hintergrund gestateten Prozesses in lock_pid. Das Ganze funktioniert.

Nun möchte ich aber nachdem der Hintergrundprozess beendet ist das lock_pid file löschen:

#!/bin/bash
(sleep 60;rm lock_pid)&
echo $!>lock_pid

lock_pid enthält nun nicht die PID von sleep, obwohl es ja der zuletzt im Hintergrund gestartete ps ist, sondern die der Shellscrips selbst:confused:

Kann mir jemand weiterhelfen?

P.S. eigentlich möchte ich rsync im hintergrund starten und brauche die PID von rsync um den Prozess stoppen zu können.

Danke Manfred

3qualizer
15.06.03, 20:44
Wie wärs auf die Art:

#!/bin/bash

sleep 10 &
pid=$!

echo $pid >lock_pid

wait $pid

rm lock_pid
Eric

kressevadder
15.06.03, 21:01
Danke,

Würde auch irgendwie gehen. Nur wartet das script ja auf den Prozess im Hintergrund bis es fertig ist. Ich müsste es also auch als hintergrundprozess starten.

Allerdings interessiert mich trotzdem, woher der sich plötzlich in meinem Script die andere PID holt.

Gruss