Vytvořil jsem skript, který přidá úlohu cron na základě specifikací uživatele, ale nebude fungovat, protože pokaždé potřebuji aktualizovat cron Přidávám úlohu do crontabu. Existuje způsob, jak obnovit cron, aniž byste proces zabili?

Odpovědět

Dokud váš skript používá crontab k přidávání a mazání specifikací úloh pro uživatele, není třeba restartovat cron démona.

Na stránce AIX 7.1 ruční stránka cron uvádí :

Když provedete změny do souborů crontab pomocí příkazu crontab se démonovi cron pošle zpráva označující změnu.

Viz také příručku crontab .

Obecný tok akcí, které by váš skript provedl take:

  1. Získejte uživatelskou crontab do textového souboru pomocí crontab -l >crontab.txt.
  2. Manipulujte s textovým souborem přidáním, odebráním nebo změnou specifikací úloh.
  3. Načtěte crontab uživatele s novými specifikacemi pomocí crontab crontab.txt.

Příkazy v prvním a posledním kroku je třeba provést jako uživatel (první krok lze spustit také jako crontab -l username >crontab.txt jako např root).

To by fungovalo na jakémkoli Unixu používajícím cron.

Komentáře

  • Co když existují úlohy? Musím to nejdříve vložit do stejného textového souboru a poté přidat novou úlohu před jejím načtením do crontabu?
  • @Shan Jak jsem již zmínil, získáte aktuální crontab pro uživatele a pak jej upravíte před opětovným načtením. Takže ano, přidali byste nové úlohy do souboru vytvořeného crontab -l.

Odpovědět

AIX 7.1 ruční stránka cron říká :

The démon cron načte konfigurační soubor, když je aktivován a když přijímá signál zavěšení.

Takže stačí kill -HUP cron_pid měl by to udělat.

Komentáře

  • Už jsem to zkusil, ale chtěl bych obnovit svoji konfiguraci bez zabití procesu
  • @Shan Příkaz kill odesílá signály do procesu. Obecně lze procesy zabít, tj. Ve skutečnosti zemřít, přijetím signálu. Ale v případě cron procesu zpracovává signál, neumírá a znovu načte jeho konfiguraci.
  • Část manuálové stránky, kterou jste citovali, je s odkazem na cron ' s konfigurační soubor , /etc/cronlog.conf, nikoli samotné soubory crontab.
  • Nemohu z toho udělat odpověď na tuto otázku; když ručně upravím soubor crontab a HUP cron, nová úloha cron se neprovede.
  • @JeffSchaller má pravdu, buď musíte zabít -9 cron_pid, nebo použít crontab v souboru crontab, jak navrhuje Kusalananda v druhé odpovědi znovu načíst crontab.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *