Один скрипт запускается каждые n
минут.Первое, что он должен сделать, это проверить, работает ли он уже.Если это так, новый сценарий завершается.
После завершения проверки сделайте что-нибудь, чтобы отметить существование сценария.Стандартом является запись вашего pid
в указанное место.Тогда функция проверки может:
- Проверить, существует ли файл
pid
.Нет файла, нет запущенного сценария. - Убедитесь, что
pid
, указанный в файле, запущен.Нет запущенного pid
, нет запущенного сценария.
Существует небольшая вероятность того, что вы получите ложное срабатывание запущенного файла.Например, ваш сценарий получает pid
из 12345. Когда он умирает, система перебирает все возможные pid
с.Теперь другой процесс использует pid
12345. pidfile будет содержать «12345»;ваш сценарий проверит, что процесс с этим номером работает, увидит, что новый процесс уже существует, и предположит, что ваш сценарий запущен.
Возможно, есть способ обойти эту последнюю проблему, но я не знаю,это.