Ponowne uruchamianie crona po zmianie pliku crontab?


432

Czy muszę ponownie uruchamiać crona po zmianie pliku crontable?


8
Nie zlekceważę odpowiedzi @ leonbloy, ale zauważyłem, że implementacja pierwszego zadania crona mojego linuksa (poprawnie sformatowanego zadania na minutę) nie działała, dopóki system nie został ponownie uruchomiony. sudo service cron restartnie był testowany.
— geotheory

1
@geotheory yikes Mam nadzieję, że nie będę musiał ponownie uruchamiać serwera prod za każdym razem, gdy aktualizuję crontab (i nie robię tego).
— jcollum

Odpowiedzi:


613

Nie.

Ze strony man crona :

... cron zbada czas modyfikacji wszystkich crontabów i załaduje te, które uległy zmianie. Dlatego cron nie musi być ponownie uruchamiany za każdym razem, gdy modyfikowany jest plik crontab

Ale jeśli i tak chcesz się upewnić,

sudo service cron reload

lub

/etc/init.d/cron reload

10
Jeśli używasz folderu cron.d, dowiązania crontabs nie zostaną ponownie załadowane. Jak mogę wymusić przeładowanie?
— CMCDragonkai

13
Ach, to takie proste. Jest teraz sudo service cron restart.
— CMCDragonkai

21
Lepszą opcją jest przeładowanie - może ją zainicjować użytkownik inny niż root:/etc/init.d/cron reload
— Honza

8
@CMCDragonkai Prawdopodobnie crondzamiast cron.
— Cees Timmerman

32
Jedynym problemem związanym z tą odpowiedzią jest to, że nie zawsze jest to prawda. Zobacz komentarz geotheory pod pytaniem. Ja też byłem tym podekscytowany. Dokonałem zmiany w pliku crontab przez sudo crontab -e, zapisałem zmianę przez Ctrl + Xi cronodszedłem, zakładając, że ją podniosę (ze względu na to, że odpowiedź była bardzo pozytywna). Kilka dni później mój klient informuje, że cron nadal działa w starym cyklu. Więc - szczerze mówiąc - jeśli chcesz być bezpieczny - po prostu zrestartuj cronsystem lub system i nie baw się testami zmarnowanego czasu, co musisz zrobić pomimo tak pozytywnej odpowiedzi.
— Dan Nissenbaum

52

Na CentOS z cPanel załatwia sudo /etc/init.d/crond reloadsprawę.

Na CentOS7: sudo systemctl start crond.service


3
Dzięki za linię CentOs 7
— Mathieu de Lorimier,

1
//, Aby ponownie załadować crond, zamiast uruchamiać go w coraz bardziej okropnym systemie, uruchom sudo systemctl reload crond.service.
— Nathan Basanese

@NathanBasanese Przeładowanie cronna SystemD jest teraz uważane za czarną magię: sudo systemctl reload crondkończy się niepowodzeniem Failed to reload cron.service: Job type reload is not applicable for unit cron.service.(Ubuntu 18.04). Przeczytaj: Heads off, wszyscy jesteśmy przejęci syndromem: „SystemD, może być tylko jeden”. Jeśli przeładowanie nie odbywa się automatycznie za kulisami, jesteś popsuty! Nawet nie myśl o naprawieniu go, tak jak robiłeś to przez ostatnie 3 (lub więcej) dekad! Przeczytaj: Świat Windows w końcu połknął Debian: Jeśli jest coś dziwnego pod maską, co zrobisz? Uruchom ponownie!
— Tino

Ponowne uruchomienie to coś więcej niż przeładowanie. Czy dla Centos nie jest dostępna czysta opcja przeładowania?
— Ωmega

@Tino możesz zainstalować cronie
— Bob

27

Miałem podobny problem na 16.04 VPS Digital Ocean. Jeśli zmieniasz crontabs, koniecznie uruchom

sudo service cron restart 

To zadziałało dla mnie. Dzięki
— Tien Nguyen,

Widzę, że reloadwystarczy. Nie ma potrzeby restart. Dzięki. :)
— Tien Nguyen

12

W zależności od dystrybucji użycie polecenia „cron reload” może nic nie zrobić. Aby wkleić fragment kodu z init.d / cron (debian squeeze):

reload|force-reload) log_daemon_msg "Reloading configuration files for periodic command scheduler" "cron"
    # cron reloads automatically
    log_end_msg 0
    ;;

Niektórzy deweloperzy / opiekunowie polegali na przeładowywaniu, ale nie robią tego iw tym przypadku nie ma możliwości wymuszenia przeładowania. Generuję moje pliki crontab w ramach wdrożenia i chyba, że ​​jakoś zmieni się długość pliku, zmiany nie zostaną ponownie załadowane.



6

Wypróbuj to: sudo cron reload Działa dla mnie na Ubuntu 12.10


Nie działa na moim Raspberry Pi 3+ z Ubuntu 18.04.2 LTS
— Jan

3

Spróbuj to: service crond restart, stąd to crondnie cron.


crondusługa nierozpoznana. To działa crondla mnie. mój system operacyjny to Ubuntu 18.04
— Tien Nguyen

1

Są przypadki, w których cron musi zostać zrestartowany, aby skrypt startowy działał. W zrestartowaniu crona nie ma nic złego.

restart cron usługi sudo


0

1) W przypadku /var/spool/cron/crontabs/rootedycji pliku za pomocą klienta SFTP - potrzebujesz service cron restart. Usługa przeładowania nie działa.

2) Jeśli edytujesz plik /var/spool/cron/crontabs/rootprzez konsolę Linux (nano, mc) - zrestartuj NIE potrzebujesz.

3) Jeśli edytujesz crona przez crontab -e- zrestartuj NIE potrzebujesz.


0

Ubuntu 18.04 * Zastosowanie: /etc/init.d/cron {start | stop | status | restart | reload | force-reload}

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.