2017-07-20 6 views

Antwort

1

Die

set -e 
foo & 
foo_pid=$! 

# If this script is killed, kill the `cp'. 
trap "kill $foo_pid 2> /dev/null" EXIT 

while kill -0 $foo_pid 2> /dev/null; do 
    # Do smth 
    ... 
    sleep 1 
done 
+0

Sie überprüft im Grunde, dass der Prozess für jeden Befehl noch existiert? Wenn ein Befehl erfordert, dass er existiert, würden Sie ihn mit dieser Schleife umhüllen? – user877329

0

Versuchen helfen kann das Signal und Aktualisierung eine Datei mit Zeit und Datum zu fangen.

set -e 
act() { 
    echo "Caught signal!" > /tmp/file.txt 
    echo `date` >> /tmp/file.txt 
    exit 
} 

trap act SIGINT SIGTERM SIGKILL 

foo & 
foo_pid=$! 
# Do tasks that requires that foo is running 
wait $foo_pid 
+0

Das Problem ist, dass die Falle nicht ausgelöst wird. – user877329

Verwandte Themen