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:
- Získejte uživatelskou crontab do textového souboru pomocí
crontab -l >crontab.txt
. - Manipulujte s textovým souborem přidáním, odebráním nebo změnou specifikací úloh.
- 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
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.
crontab -l
.