Блокировка в сценарии оболочки

Я хочу написать длинный сценарий оболочки, чтобы одновременно запускать только одну копию. Если сбой сценария, я хочу, чтобы новый вызов скрипта не был остановлен блокировкой из разбитого вызова.

Является ли lockfile-* набором utils правильной вещью? Есть ли вероятность состояния гонки при использовании в скрипте?

--use-pid ли --use-pid ограничение на 5 минут, указанное на странице руководства? Мои скрипты работают значительно дольше.

Я использую экземпляр Ubuntu 10.10 на Amazon EC2; нет NFS или что-то в этом роде.

One Solution collect form web for “Блокировка в сценарии оболочки”

При создании блокировки можно выполнить команду lockfile или системный вызов flock или создав каталог (который является неотъемлемым действием), вторая часть более сложна.

Если блокировка существует – как вы определяете, если блокировка принадлежит еще запущенному процессу?

Наиболее распространенным решением является включение PID процесса в файл блокировки.

Прежде чем пытаться создать блокировку, вы должны проверить, существует ли файл блокировки. Если да, проверьте, соответствует ли PID выполняемому процессу, который похож на процесс, который должен создать блокировку. Если это не так, удалите блокировку и заново создайте ее.

  • найти файл, скопировать, но с другим именем
  • Удаление непустого каталога с помощью smbclient
  • Выполните эскиз строк сценария перед их запуском
  • Как я могу безопасно получить версию ksh?
  • Как запустить сценарий оболочки из любого места
  • Выбор случайной выборки из дерева каталогов
  • Как заставить sed выполнять действия только в первом матче?
  • Итерация по нескольким файлам в папке и присвоение значения
  • Вызов скриптов из других скриптов
  • Сравните несколько файлов с файлом ref и распечатайте, если это соответствует
  • Сценарий Bash для извлечения идентификатора сообщения и отправки силы
  • Linux и Unix - лучшая ОС в мире.