
У меня есть cronjob, который запускается каждую минуту и проверяет наличие определенного файла. Если такого файла нет, задание молча завершается. Если файл есть, то запускается другой скрипт. Этот скрипт удаляет файл после завершения. Время его выполнения может занять до 20 минут.
У меня такие вопросы: Есть ли недостатки в этой схеме? Можно ли хранить такой файл в tmp? Могу ли я быть уверен, что никто не попытается его удалить?
Спасибо за ответы!
Цель этой схемы — разрешить запуск этого скрипта через веб-интерфейс. Сам скрипт находится в домашней папке пользователя и работает с ее содержимым. Я не уверен, что создание pid-файлов в /var/run уместно.
решение1
Я полагаю, вы говорите о системе Linux. Если вы ничего не настроили для очистки /tmp, это не будет сделано автоматически. Единственное исключение — когда вы перезагружаете систему — большинство дистрибутивов Linux очищают /tmp при перезагрузке. Конечно, вы можете поискать скрипт, который делает целан, и вы можете отключить его, если это беспокоит
решение2
Во-первых... Я думаю, что ваша работа может быть выполнена до 20 раз, если вы «удалите файл по завершении». Из того, что вы говорите, файл должен быть перемещен/удален, как только он обнаружен.
решение3
Пока вы проверяете, не запущен ли ваш скрипт обработки файлов, все должно быть в порядке. /tmp вполне подойдет для таких случаев, если только у вас не происходят случайные перезагрузки, а это само по себе довольно серьезная проблема.
решение4
Вы можете заглянуть на страницу руководства hier. Этот тип флага часто встречается в /var/run. Вам следует использовать файл маркера для обоих процессов, чтобы предотвратить запуск нескольких скриптов обработки.