Czy zadania Linux cron są wykonywane sekwencyjnie czy równolegle?

10

Powiedzmy, że tworzę dwa zadania cron:

  • Cron Job A działa codziennie o 8:00
  • Cron Job B działa codziennie o 8:05

Jednak uruchomienie zadania Cron A zajmuje 12 godzin (nie pytaj dlaczego, to jest przykład).

Czy zadanie Cron B będzie uruchamiane o 8:05, czy też zadania cron będą wykonywane tylko pojedynczo?

Jeśli wcześniej uruchomione zadanie Cron zostało przerwane przez ponowne uruchomienie / ponowne uruchomienie systemu, czy zostanie wznowione / uruchomione ponownie po kolejnym uruchomieniu?

Adam B.
źródło
2
Pierwsza część tego jest tak łatwa do przetestowania. Dziwi mnie, że tego nie zrobiłeś.
user9517
1
Testowanie to jedno, ale staram się uzyskać informacje na temat zasad działania crona. Tak, prawdopodobnie mogę przeglądać źródło cron, ale zajęłoby to więcej czasu. Na przykład chciałbym wiedzieć, czy zadania każdego crona są odradzane jako nowy proces, co z mojego zrozumienia jest. A także, czy istnieje limit równoczesnego uruchamiania zadań cron, który w rzeczywistości wydaje się być oparty na implementacji.
Adam B

Odpowiedzi:

11

Tak, zadanie B crona będzie działać o 8:05. Możesz także uruchomić więcej niż jedno długotrwałe zadanie o 8:00 itd.

Jednak zadanie nie zostanie wznowione po ponownym uruchomieniu. Jeśli potrzebujesz czegoś takiego, przepisz swoją pracę za pomocą opakowania, które jest często planowane i które sprawdza, czy ma coś nowego do zrobienia lub coś innego do kontynuowania. Będzie to oczywiście zależeć od zadania, które chcesz wykonać.

Sven
źródło
Gdyby do tego doszło, prawdopodobnie przestawiłbym się na demona. Widzę, że jeśli chodzi o ponowne uruchamianie / przerwy w dostawie prądu itp., Daemon może być bardziej niezawodny.
Adam B
2
@AdamB: Istnieje wiele zadań, do których cron nie jest odpowiedni. Jak zawsze wybierz narzędzie odpowiednie do twojego zadania. Np. Warto się przyjrzeć anacron.
Sven
5

Są uruchamiane równolegle. Zadanie B Crona zostanie uruchomione o godzinie 8:05.

Brian Minton
źródło
1

Każdy cron w twoim systemie jest odizolowany od siebie, ale czas wykonania zadania cron będzie zależał wyłącznie od alokacji zasobów systemowych i pracy, dla której Cron został zaplanowany.

Abhishek Anand Amralkar
źródło
Czy to będzie? Sądzę, że może to zależeć również od tego, co robi cronjob, od jakich danych wejściowych lub do czego i od kilku innych czynników.
Falcon Momot,