Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 4
  • 43

Często mamy sytuację gdzie jakiś skrypt jest uruchamiany z crona. Co np minutę (* * * * * skrypt).

W jaki sposób w takim skrypcie zapewnić że na raz będzie uruchomiona dokładnie jedna instancja skryptu? Czyli jeżeli np proces uruchamiany o 8:20 się nie zakończy przez minutę, to proces uruchamiany o 8:21 się nie wykona?

Andrzej_Dopierała
  • Zapytał
  • @ Andrzej_Dopierała | 31.01.2016
    • lider
    • laureat
    • ekspert
    • 83
    • 65
    • 169
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedź (1)

  • 0

Można w skrypcie dodać tzw. flagę np.

touch /tmp/flaga

Na starcie skryptu przed jej utworzeniem dać "if" który zakończy skrypt jeśli znajdzie flagę.

Na końcu skryptu dać usunięcie flagi rm /tmp/flaga.

Paweł_Glica
  • Odpowiedział
  • @ Paweł_Glica | 01.02.2016
    • 1
    • 0
    • 1
Komentarze
Takie coś ma dwie wady:- jest ryzyko że, jeżeli dwa skrypty się uruchomią na raz (np. w skutek błędu crona) - oba naraz sprawdzą czy jest plik, a że nie będzie to oba plik utworzą i... będą happy - po reboocie/padzie systemu plik zostaje i może być sytuacja gdzie program przestanie się uruchamiać.
Skomentował : @ Andrzej_Dopierała ,01.02.2016
  • 83
  • 65
  • 169
Dopuszczamy tylko użycie standardowych funkcji Linux, czy również czegoś dodatkowego?
Skomentował : @ Paweł_Glica ,02.02.2016
  • 1
  • 0
  • 1