Ich führe zwei Skripte aus. Beide sind im Wesentlichen der gleiche Code, müssen jedoch im Abstand von 5 Minuten ausgeführt werden, um eine Kollision zu vermeiden. Erstes Drehbuch: #! / bin / sh
# First run
line="Bonus check"
stamp=$(date +%Y%m%d-%H%M)
# sleep 90s
echo "$stamp\t $line" >> /home/rdanner3/Desktop/CardParty.log
{
export DISPLAY=:0.0
google-chrome [URL masked]
}
sleep 45s
# google-chrome
pkill -f chrome
# Second run to seventh run identical to above; stripped for brevity.
Zweites Skript (beachten Sie, dass es im Wesentlichen der gleiche Code ist; beide müssen wirklich Schleifen für die Vernunft sein!)
#!/bin/sh
# 1st run
line="Bonus checked."
stamp=$(date +%Y%m%d-%H%M)
# sleep 90s
echo "$stamp\t $line" >> /home/rdanner3/Desktop/Slots.log
{
export DISPLAY=:0.0
google-chrome [URL masked]
}
sleep 45s
# google-chrome
pkill -f chrome
# 2nd run to 7th run identical to above code...stripped for brevity
Was passiert, wenn die Skripte die zweite Ausführung erreichen? Sie laufen innerhalb von Sekunden, obwohl die Cron-Jobs, die sie anfangs starten, 5 Minuten voneinander entfernt sind. Es ist ziemlich offensichtlich (aus den Protokolldateien, die die beiden Skripte schreiben), dass sie nicht in der richtigen Reihenfolge gestartet werden. Würde das Umschalten des zweiten Skripts auf (say) ash oder bash dazu beitragen, dass sich die Sleep-Befehle der beiden Skripts nicht gegenseitig verwirren? Oder mache ich einen anderen Fehler (zum Beispiel muss ich das zweite Mal google-chrome auskommentieren, damit der pkill die Luft reinigt)?
Ich habe das Problem gestern bemerkt und bin zu dem Schluss gekommen, dass ich ein bisschen Hilfe brauche. Also bin ich hergekommen.
quelle
for url in "http://a.com" "http://b.com"; do google-chrome $url; sleep 45s; done