steh derzeit vor nem kleinen batch problem
ich starte alle 5min (via cron) ein bash script, welches mir eine kleine immer neu generrierte html datei ins WWW lädt...
das script neigt allerdings sich wärend der ftp verbindung immermal aufzuhängen, was dazu führt das, wenn ich dann abends mal von der arbeit komm in meiner prozess übersicht so "einige mehr" an prozessen hängen, die ich abschiesen muss...
jetzt war meine überlegung, lass ich das script, jedesmal wenn es startet, erstmal überprüfen ob noch eine instanz mit dem selben läuft -> soweit war das nichmal schwer, n bissl lesen, n bissl basteln, und funzt auf 2 verschiedenen wegen..
Code: Alles auswählen
#!/bin/bash
script='teeeest'
if [[ -e /tmp/$script ]]; then
rm /tmp/$script
killall $script
/usr/local/bin/$script
echo "$script instanz gefunden und wurde gekillt......"
fi
touch /tmp/$script
##
##aufruf von dem ersteller der html datei und ftp verbindung
##
rm /tmp/$script
exit
bei "killall" killt er sich ja selbst mit
und genau das will ich vermeiden, er soll ja "danach" das script trotzdem ausführen, ansonsten würde das ja beudeten das erst 10min später was im www ankommt oder sogar 15min
wie also, könnte ich das bewergstelligen, das mir das script erst alle "alten prozesse" mit dem script namen killt, und danach nochmal sich selber startet...
dachte da direkt daran das ich mit ps a und grep was machen kann, hab dazu aber nichts gefunden was mir speziell nur die PIDs der vorherrigen prozesse ausliest
-> das müste dann ja so ablaufen das er alle PIDs mit dem $script namen listet, und die letzte (welche ja logicherweise das prüffende script selber ist) wegläst, und alle andren PIDs killt..
sooo, hoffe ich konnte mich einigermaßen verständlich ausdrücken und hoffe jemand hat für mich ne geeignet lösung
grüße, bRunO