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.