Ponowne uruchamianie crona po zmianie pliku crontab?

432

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

bArmageddon
źródło
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
leonbloy
źródło
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

Sheldmandu
źródło
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 
Gyro
źródło
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.

Tit Petric
źródło
9

wypróbuj ten dla przeładowania centos 7: service crond

Talent
źródło
6

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

jono
źródło
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.

ako
źródło
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

Mawty
źródło
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.

vebmaster
źródło
0

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

Aqua Huang
źródło