Planowanie procesów: czym są Cron, Anacron, Systemd i Launchd?

Systemy operacyjne umożliwiają łatwe korzystanie z komputerów i innych urządzeń cyfrowych. macOS jest używany na Apple Mac i iOS na iPhonie. Aby całość działała, widoczne są interfejsy, opcje interakcji i programy, ale także procesy, usługi systemowe i skrypty działające w tle, a więc niewidoczne. Częścią tych zadań w tle jest harmonogram, który automatycznie uruchamia, kontroluje i kończy niektóre zadania systemowe i procesy konserwacji. Nazywano jeden z pierwszych harmonogramów opartych na Uniksie cron. Jest to nadal odpowiednie dla dzisiejszych serwerów. Na komputerach jest bardziej prawdopodobne Anakron lub Systemd używać – na macOS tak wystartował.

Pierwszy program planujący w systemach operacyjnych opartych na Uniksie nazywał się cron i przyniósł ze sobą cronjobs i crontab. Launchd jest teraz używany na Apple Mac jako demon do planowania i wielu innych zadań.
Pierwszy program planujący w systemach operacyjnych opartych na Uniksie nazywał się cron i przyniósł ze sobą cronjobs i crontab. Launchd jest teraz używany na Apple Mac jako demon do planowania i wielu innych zadań.

Cron: Początki planowania na komputerze

Cron (z greckiego „chronos” oznaczający „czas”) od dawna jest standardowym narzędziem do planowania w systemach operacyjnych typu Unix. Pierwotnie opracowany w latach 1970. XX wieku, cron umożliwiał użytkownikom komputerów definiowanie zadań, które mają być uruchamiane w określonych godzinach, w określone dni lub w określonych odstępach czasu. 

Obejmowało to zadania związane z konserwacją systemu, powiadomienia i raportowanie (generowanie dziennika). Cron przez długi czas służył swojemu celowi, ale miał też swoje ograniczenia. Na przykład użytkownik musiał być zalogowany, aby cron mógł działać. Cron jest nadal używany na serwerach, ponieważ bardzo dobrze nadaje się do stale działających systemów.

Co to jest zadanie cron?

Zadanie cron to zadanie zaplanowane i wykonane przez program planujący cron. Jest to zatem wykonywany proces oparty na czasie, program lub skrypt. Zadanie cron może być ustawione przez system, aplikację lub użytkownika w celu zaplanowania określonych godzin dla poszczególnych zadań lub wielokrotnego wykonywania polecenia w określonych odstępach czasu. Konserwacja systemu, tworzenie kopii zapasowych danych, tworzenie raportów (logów) i czyszczenie baz danych to przykłady zastosowania. 

Co to jest crontab?

Do definiowania i planowania zadań cron służy crontab („tab” oznacza tabelę). W systemach operacyjnych opartych na Uniksie jest to plik konfiguracyjny, który można postrzegać jako rodzaj przeglądu czasu lub harmonogramu. W przeglądzie crontab ustawiane są czasy wykonania z różnymi datami dla poszczególnych poleceń, procesów, skryptów, aplikacji itp. - miesiąc, dzień miesiąca, dzień tygodnia, godzina, minuta i/lub inne. Tabelę crontab można edytować w wierszu poleceń lub w pliku terminal przeglądać i edytować. W tym celu dostępne są różne polecenia crontab.

Tabela crontab składa się z sześciu kolumn, z których ostatnia jest używana do wykonania polecenia. Pięć kolumn przed poleceniem określa czas jego wykonania, dzięki czemu przy ciągłym czytaniu tabeli rozpoznawany jest osiągnięty czas i polecenie można wykonać na końcu wiersza. Pięć kolumn planowania jest zwykle podzielonych w następujący sposób:

  • Minuta (0-59): Minuta w ciągu godziny, kiedy zadanie powinno zostać uruchomione.
  • Godzina (0-23): Godzina dnia, w której zadanie powinno zostać uruchomione.
  • Dzień miesiąca (1-31): Dzień miesiąca, w którym ma zostać uruchomione zadanie.
  • Miesiąc (1-12): Miesiąc, w którym ma zostać uruchomione zadanie.
  • Dzień tygodnia (0-6): Dzień tygodnia (od niedzieli do soboty), w którym ma zostać uruchomione zadanie; wartość 7 może być również używana do reprezentowania niedzieli (tj. dzielenia tygodnia od 1 do 7).

Bardziej nowoczesne rozwiązania, takie jak Anacron, Systemd i Launchd, są w większości wstecznie kompatybilne z cronjobs i crontab, więc te technologie uniksowe mogą być nadal używane z odpowiednimi poleceniami terminala do ręcznego planowania.

Anacron: Opuszczone zadania są po prostu nadrabiane

Anacron został opracowany jako zaawansowana technologia cron, aby rozwiązać niektóre słabości crona - np. B. uzależnienie od aktywnego użytkownika. W przypadku wielu zadań, które powinny być wykonywane w ustalonych godzinach, istniało również ryzyko, że zostaną one po prostu pominięte, jeśli odpowiedni użytkownik nie będzie zalogowany. 

Anacron rozwiązał ten problem, dostosowując zadania tak, aby można było je wykonać, nawet jeśli zostały pominięte. W tym celu przeszukiwano przeszłe zadania i sprawdzano, czy przyniosły one wynik lub zostały odnotowane w dzienniku. Jeśli tak nie było, zostały nadrobione. Anacron jest zatem przydatny w przypadku komputerów i laptopów, które nie działają w sposób ciągły.

Systemd: system inicjalizacji, planowanie i więcej w jednym

Nazwa systemd składa się z „system” dla systemu operacyjnego i „d” jako skrótu od demona. Demon jest procesem działającym w tle (więcej na ten temat tutaj: Czym jest demon?). Ale systemd to coś więcej niż pojedynczy proces w tle, zawiera tak zwany system init. Skrót init oznacza „inicjowanie” i wskazuje, że chodzi o uruchomienie systemu operacyjnego i załadowanie wymaganych do tego procesów, usług i zasobów. 

Mówiąc krótko: Systemd to zbiór procesów, który zapewnia działanie systemu i oferuje dla niego różne harmonogramy i prawidłowości. Na górze listy znajduje się proces systemd-init, który jest wywoływany jako pierwszy (identyfikator procesu 1) i kontroluje uruchamianie, monitorowanie i kończenie innych procesów, głównie demonów działających w tle. Inne komponenty systemd zapewniają możliwości crontab, tworzą pliki dziennika i nie tylko.

Najkrótsze podsumowanie przedstawia ks Wpis w Wikipedii w temacie: "systemd to demon, który uruchamia i utrzymuje system."

Uruchomiony: system init od Mac OS X 10.4 Tiger

Aż w końcu Mac OS X 10.3 Pantera Od 2003 r. firma Apple polegała na standardowym procesie inicjującym uruchamianie systemu przez komputery Mac i cron w celu planowania systemu. Od Mac OS X 10.4 Tygrys, który towarzyszył przejściu z komputerów PowerPC Mac na modele z procesorami Intel w latach 2005-2007, Launchd jest używany jako zbiór procesów inicjalizacji i planowania. Demon launchd jest porównywalny do systemd i zapewnia również ramy do zarządzania innymi demonami i zadaniami. Launchd składa się z „Launch” do uruchamiania systemu i „d” dla demonów.

Podobnie jak systemd w innych systemach opartych na Uniksie, launchd odpowiada również za uruchomienie systemu, czyli proces rozruchu na komputerach z systemem macOS. W związku z tym Launchd ma również przypisany identyfikator procesu 1. Ponadto demon nadrzędny wraz z uruchamianymi przez niego demonami i innymi zadaniami w tle działa, gdy system operacyjny jest aktywny i używany. Włączenie komputera i korzystanie z systemu operacyjnego można sobie wyobrazić w bardzo uproszczony sposób jako czteroetapowy proces, który można podzielić w następujący sposób:

  • Oprogramowanie układowe jest ładowane w celu weryfikacji sprzętu i umożliwienia jego użytkowania.
  • Jądro i jego rozszerzenia są ładowane, a następnie jądro aktywuje launchd.
  • Launchd uruchamia i przeszukuje katalogi systemu i demona użytkownika, co powoduje załadowanie poszczególnych ustawień. Zostanie wyświetlone okno logowania.
  • Gdy komputer Mac jest włączony (i jeśli system macOS jest aktywnie używany), Launchd uruchamia określone procesy w tle i zadania cron zgodnie z plikami plist systemu i użytkownika oraz crontab.

Uruchomiony na Macu: Szybsze uruchamianie i wydajniejsze systemy

Ale Launchd obsługuje również inne złożone zadania. Został zaprojektowany przez Apple z myślą o oszczędzaniu zasobów. W praktyce oznacza to między innymi, że podczas uruchamiania systemu i logowania użytkownika ładowane są tylko niezbędne demony. Inne demony są ładowane tylko wtedy, gdy są naprawdę potrzebne. 

Na przykład klucz „OnDemand” można przypisać do demonów sieciowych, tak aby Launchd ładował je tylko wtedy, gdy są potrzebne do żądania sieciowego („na żądanie”). W rezultacie systemy operacyjne działają szybciej lub płynniej z Launchd. Może to zapewnić zgodność ze starszym, wolniejszym sprzętem.

Rola plików plist w korzystaniu z Launchd

Jak wspomniano powyżej, na komputerze Apple Mac Launchd ładuje określone ustawienia, konfiguracje i demony do zarządzania zadaniami. Są one ładowane między innymi z katalogów systemowych (np. /System/Library/LaunchDaemons), które określają określone właściwości i zadania odpowiedniego systemu operacyjnego. Ale także z katalogów użytkowników (np. /Library/LaunchDaemons), które zawierają indywidualne ustawienia, konfiguracje, rozszerzenia i elementy logowania użytkowników.

Każdy z nich jest przechowywany na liście właściwości lub w skrócie plist. Pliki plist w tych i innych katalogach w systemie macOS służą między innymi do dostosowywania systemu i uruchamiania procesów w tle. Oprócz bezpośrednio widocznych efektów służą one również do indeksowania treści (np. B. dla Spotlight) albo za Ustawienia Bluetootha. Jeśli mają błędy, mogą pojawić się problemy. Dlatego niektóre przewodniki rozwiązywania problemów z komputerami Mac zalecają usunięcie niektórych plików plist.

Więcej informacji można znaleźć w postach Jensa:

Podsumowanie na temat

Właściwie chciałem tylko napisać post o cron, cronjobs i crontab. Ale te uniksowe technologie planowania nie są już używane w ich oryginalnej formie na Apple Mac. Dlatego pokazałem rozwój opartych na nim demonów szeregujących. Z Anacron przez Systemd ścieżka prowadziła następnie do Launchd, który od pewnego czasu jest używany w systemach Mac OS X, OS X i macOS. Mam nadzieję, że udało mi się w zrozumiały sposób wyjaśnić funkcjonalność Launchd i jej związek z systemem, indywidualnymi kontami użytkowników oraz plikami plist.

Oto kilka źródeł do dalszej, a przede wszystkim bardziej obszernej technicznie lektury:

  • Artykuł w Wikipedii na temat demona cron: tutaj
  • Artykuł w Wikipedii na temat Anacron: tutaj
  • Artykuł w Wikipedii na temat systemd: tutaj
  • Artykuł w Wikipedii na temat Launchd: tutaj

Moje wskazówki i porady dotyczące technologii i Apple

Podobał Ci się artykuł i czy instrukcje na blogu Ci pomogły? Wtedy byłbym szczęśliwy, gdybyś bloga poprzez stałe członkostwo będzie wspierać.

9 odpowiedzi na „Planowanie procesów: czym są Cron, Anacron, Systemd i Launchd?”

  1. Kupiłem MacBooka Pro M2 Pro 2023. Mój stary Mac nadal miał 7-letni procesor Intel. Różnica, nowy się nie grzeje. To, czy za 7 lat kupię ponownie nowy, jest kwestią otwartą. Te części nie są tanie. Ale każdy, kto miał do czynienia z komputerami z systemem Windows, doceni Apple. Sprzęt i oprogramowanie z jednego źródła. Ze względu na pamięć nie jest tak miło. Musisz wziąć to, co jest w ofercie.
    Przyjrzę się bliżej waszemu portalowi.
    O tak, czy masz opis, w jaki sposób Apple przechowuje dane, z wyjątkiem dokumentów.
    Jeśli nie ustawię dla niego folderu. Na przykład: szablony dla Pages lub Numbers.

    1. Jen Kleinholz

      Witaj Falku! Tak, komputery Mac są zawsze trochę droższe, ale osobiście uważam, że cena jest uczciwa, jeśli oszczędza mi bólu głowy, który miałem z moim komputerem.
      Odnośnie twojego pytania: nie zrozumiałem go poprawnie. Co dokładnie masz na myśli, mówiąc „jak Apple przechowuje dane”?

  2. Całkowicie się zgadzam co do ceny i innych rzeczy.
    Ze względu na dane Pages i Numbers mają szablony, z których mogę wybierać i mogę zabezpieczyć swój konkretny szablon. Funkcja biblioteki nie jest dla mnie tak jasna, niektóre rzeczy zostały dodane w ramach Sonoma. Są to obszary działające w tle. O to mi chodziło.

    1. Jen Kleinholz

      Cześć Falku! Przepraszam, jeśli jestem taki tępy. Nie do końca rozumiem… mówisz na przykład o Pages. Gdzie jest biblioteka? Masz na myśli „książki” pod szablonami? A może jestem totalnie porąbany? 😂

    1. Johannesa Domke’a

      Witaj Falku.

      Po pierwsze: nie bądź bezczelny!

      Po drugie, co powiesz na to, abyś zadał pytanie właściwie, aby ludzie wiedzieli, czego chcesz?

      W końcu pod postem, który nie ma absolutnie nic wspólnego z tematem twojego pytania, piszesz komentarz na temat zakupu komputera Mac i swoich doświadczeń, które nie mają nic wspólnego. Następnie odwołujesz się do innego postu, nie nazywając go dokładnie (co powiesz na opublikowanie swojego pytania pod tym samym postem, aby można było je skategoryzować tematycznie?). Poza tym czasem chodzi o szablony, czasem o bibliotekę, a czasem o to, że coś zostało dodane w Sonomie. Jak dokładnie zrozumieć, czego chcesz?

      Więc zamiast insynuować, że ktoś tu nie ma pojęcia, powinieneś właściwie wyjaśnić, na czym polega twój problem i jakie jest twoje dokładne pytanie. Starałem się zrozumieć, czego chcesz. Ale to po prostu niemożliwe.

    2. Jen Kleinholz

      Cześć Falku! Nawet jeśli otrzymałeś już informację zwrotną od Johannesa. Jestem naprawdę zdumiony, jak szybko zmienia się twój nastrój tylko dlatego, że ktoś, kto chce ci pomóc, prosi dwa razy. Być może bardziej konstruktywnie byłoby, gdybyś zastanowił się, czy twoje komentarze mogą być również błędne lub źle zrozumiane, a jedno lub dwa pytania są uzasadnione.
      Rezygnuję teraz, ponieważ nie angażuję się w dyskusje z trollami, którzy wykorzystują anonimowość internetu, by zachowywać się jak siekiera w lesie. Baw się dobrze na innych stronach internetowych! Pozdrawiam Jensa

  3. Wiesz, koneser wie o czym mówię. Najlepiej, żebyśmy nie szli dalej.
    Jest wystarczająco dużo kontaktów, które mogą bez problemu odpowiedzieć na moje pytania, ponieważ wiedzą, o co toczy się gra. OK?? Myślę, że nie przeczytałeś dokładnie mojego tekstu.

Napisz komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone * oznakowane

Na blogu Sir Apfelot znajdziesz porady, instrukcje i recenzje produktów Apple, takich jak iPhone, iPad, Apple Watch, AirPods, iMac, Mac Pro, Mac Mini i Mac Studio.

Promocje
Zakupy
  •  
  •