LINUX.ORG.RU

Запрет «параллельного» запуска скрипта с точностью до минуты

 , ,


0

1

Для изготовления одного костыля в велосипед понадобилось защитить выполнять скрипт из at, с точностью до минуты.
надо предупредить ситуацию чтобы если в at много заданий записанных на запуск в одну и туже минуту, оно отработало только 1 раз. обычные flock-и не годятся, т.к. скрипт может отработать за десятки мс.

★★★

скрипт может отработать за десятки мс.

Если я правильно понял вопрос...

Просто добавь в скрипт sleep 60 перед снятием блокировки. Ну, повисит один спящий процесс в фоне минуту, ничего страшного. Зато очень просто.

undet ()
Ответ на: комментарий от undet

Просто добавь в скрипт sleep 60 перед снятием блокировки. Ну, повисит один спящий процесс в фоне минуту, ничего страшного. Зато очень просто.

+1

I-Love-Microsoft ★★★★★ ()

А еще вопрос - ставить в АТ задание на выполнение так часто будет автомат? Может повлиять на это проще, чем изменять задание?

Решение sleep 60 хорошо всем, за исключением того, что не зная предыстории с АТ непонятно будет, что там делает этот sleep? И какой-нибудь умник-ваш коллега уберет его как ненужную строку.

bogus_result ()

Создать файл с временем последнего выполнения

niemand ()
Ответ на: комментарий от bogus_result

И какой-нибудь умник-ваш коллега уберет его как ненужную строку.

Для этого и придумали комментарии, внезапно.

mix_mix ★★★★★ ()

Если использовать sleep 60 то я бы делал так: чистый скрипт отдельно, защищенная от повторного запуска и снабженный sleep 60 обертка отдельно и явно выделена, в расписание ставится обертка. Тогда и в будущем никто ничего не перепутает. Такую обертку вообще можно будет использовать повторно.

bogus_result ()

Для изготовления одного костыля в велосипед понадобилось защитить выполнять скрипт из at, с точностью до минуты.
надо предупредить ситуацию чтобы если в at много заданий записанных на запуск в одну и туже минуту, оно отработало только 1 раз. обычные flock-и не годятся, т.к. скрипт может отработать за десятки мс.

не ясно какой смысл в этом всём? (какой смысл *откладывать* задания на одну минуту?)

если это делается для того чтобы не стопорить другие важные процессы — то просто выполняйте задения через nice ...ionice ...) без откладывания на 1 минуту.

user_id_68054 ★★★★★ ()
Последнее исправление: user_id_68054 (всего исправлений: 1)
Ответ на: комментарий от mix_mix

Как вариант. Но в таких простых случаях, когда избавиться от проблемы так же легко, как оставить ее и написать комментарий, я бы выбрал избавиться.

bogus_result ()
Ответ на: комментарий от user_id_68054

Чую перекладчик файлА😊

В некоторых организациях заведены такие правила: «доступ из платежного сегмента в информационный должен быть регламентирован, производиться со специально выделенной ПЭВМ, файловый обмен должен производиться по инициативе платежного сегмента» при этом никакого дополнительного ПО использовать нельзя - безопасники все бракуют, требуют использовать именно стандартную оболочку😊 Так приходится изобретать велосипеды.

bogus_result ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.