Это будет работать, но ваше «время запуска» будет зависеть от дрейфа. Допустим, ваша работа выполняется 10 секунд, затем спит 86400, запускается еще 10, спит 86400 и т. Д. Вы запускаете ее ровно в полночь первого дня. Во второй день она запускается в 12:00:10 утра в день 3 сейчас 12:00:20 и т. Д. ...
Вы можете сделать некоторую причудливую математику внутри, чтобы выяснить, сколько времени заняла пробежка, и вычесть это из следующего вызова сна, но в тот момент, почему бы не использовать cron? С помощью cron скрипт будет завершаться после каждого запуска, очищая память и используемые ресурсы. С вашим методом сна вы должны быть ОЧЕНЬ осторожны, чтобы не пропустить ресурсы где-нибудь, иначе все в конечном итоге остановится.