Khởi động lại cron sau khi thay đổi tập tin crontab?


432

Tôi có phải khởi động lại cron sau khi thay đổi tập tin crontable không?


8
Không bỏ qua câu trả lời của @ leonbloy, nhưng tôi thấy rằng việc thực hiện công việc định kỳ đầu tiên của linux của tôi (một công việc được định dạng chính xác mỗi phút) đã không hoạt động cho đến khi hệ thống được khởi động lại. sudo service cron restartchưa được thử nghiệm.
địa lý

1
@geotheory yike Tôi chắc chắn hy vọng tôi không phải khởi động lại máy chủ prod của mình bất cứ khi nào tôi cập nhật crontab của mình (và tôi không).
jcollum

Câu trả lời:


613

Không.

Từ trang cron man :

... cron sau đó sẽ kiểm tra thời gian sửa đổi trên tất cả các crontabs và tải lại những thứ đã thay đổi. Do đó, không cần khởi động lại cron mỗi khi sửa đổi tập tin crontab

Nhưng nếu bạn chỉ muốn chắc chắn rằng nó được thực hiện bằng mọi cách,

sudo service cron reload

hoặc là

/etc/init.d/cron reload

10
Nếu sử dụng thư mục cron.d, crontabs được liên kết sẽ không được tải lại. Làm thế nào tôi có thể buộc tải lại?
CMCDragonkai

13
Ah thật dễ dàng. Bây giờ là bây giờ sudo service cron restart.
CMCDragonkai

21
Tùy chọn tốt hơn là tải lại - nó có thể được bắt đầu bởi người dùng không phải root:/etc/init.d/cron reload
Honza

8
@CMCDragonkai Có thể crondthay vì cron.
Cees Timmerman

32
Vấn đề duy nhất với câu trả lời này là nó không phải lúc nào cũng đúng. Xem bình luận của geotheory bên dưới câu hỏi. Tôi cũng vậy, từng chút một. Tôi đã thực hiện thay đổi tệp crontab thông qua sudo crontab -e, lưu thay đổi đó Ctrl + Xvà bỏ đi giả sử cronsẽ chọn nó (do câu trả lời này được đánh giá rất cao). Sau đó, vài ngày sau, khách hàng của tôi báo cáo rằng cron vẫn đang chạy trên chu kỳ cũ. Vì vậy - thành thật mà nói - nếu bạn muốn an toàn - chỉ cần khởi động lại một trong hai cronhoặc hệ thống, và không chơi xung quanh với thử nghiệm lãng phí thời gian, điều mà bạn sẽ phải làm bất chấp câu trả lời được đánh giá cao này.
Dan Nissenbaum

52

Trên CentOS với cPanel sudo /etc/init.d/crond reloadthực hiện thủ thuật.

Trên CentOS7: sudo systemctl start crond.service


3
Cảm ơn dòng 7 của CentO
Mathieu de Lorimier

1
//, Để tải lại crond, thay vì chỉ khởi động nó trên systemd ngày càng khủng khiếp, hãy chạy sudo systemctl reload crond.service.
Nathan Basan

@NathanBasan Tải lại cron trên SystemD bây giờ được coi là ma thuật đen: sudo systemctl reload crondthất bại với Failed to reload cron.service: Job type reload is not applicable for unit cron.service.(Ubuntu 18.04). Đọc: Tắt đi, tất cả chúng ta đều bị hội chứng: "SystemD, chỉ có thể có một". Nếu tải lại không được thực hiện tự động đằng sau hậu trường, bạn sẽ bị phá sản! Thậm chí không nghĩ về việc sửa nó, giống như bạn đã làm trong 3 thập kỷ qua (hoặc hơn)! Đọc: Thế giới Windows cuối cùng đã nuốt chửng Debian: Nếu có thứ gì đó kỳ lạ dưới mui xe, bạn sẽ làm gì? Khởi động lại!
Tino

Khởi động lại không chỉ là tải lại. Không có tùy chọn tải lại sạch có sẵn cho Centos?
Ωmega

@Tino bạn có thể cài đặt cronie
Bob

27

Tôi đã có một vấn đề tương tự trên 16.04 VPS Digital Ocean. Nếu bạn đang thay đổi crontabs, hãy đảm bảo chạy

sudo service cron restart 

Nó làm việc cho tôi. Cảm ơn
Tiến Nguyễn

Tôi chỉ thấy reloadlà đủ. Không cần restart. Cảm ơn. :)
Tiến Nguyễn

12

Tùy thuộc vào phân phối, sử dụng "tải lại cron" có thể không làm gì cả. Để dán đoạn trích ra khỏi init.d / cron (debian bóp):

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

Một số nhà phát triển / nhà bảo trì đã dựa vào nó tải lại, nhưng không, và trong trường hợp này không có cách nào để buộc tải lại. Tôi đang tạo các tệp crontab của mình như một phần của việc triển khai và trừ khi bằng cách nào đó độ dài của tệp thay đổi, các thay đổi sẽ không được tải lại.


9

Hãy thử cái này cho centos 7: dịch vụ tải lại crond


6

Hãy thử điều này: sudo cron reload Nó hoạt động với tôi trên Ubuntu 12.10


Không hoạt động trên Raspberry Pi 3+ của tôi với Ubuntu 18.04.2 LTS
ngày

3

Hãy thử điều này service crond restart:, do đó crondkhông phải vậy cron.


cronddịch vụ không xác định. Nó làm việc với crontôi. HĐH của tôi là Ubuntu 18.04
Tien Nguyen

1

Có những trường hợp trong đó cron cần được khởi động lại để kịch bản khởi động hoạt động. Không có gì sai trong việc khởi động lại cron.

sudo dịch vụ khởi động lại cron


0

1) Nếu /var/spool/cron/crontabs/rootchỉnh sửa tập tin qua máy khách SFTP - cần service cron restart. Dịch vụ tải lại không hoạt động.

2) Nếu chỉnh sửa tập tin /var/spool/cron/crontabs/rootqua bàn điều khiển linux (nano, mc) - không cần khởi động lại.

3) Nếu chỉnh sửa cron qua crontab -e- khởi động lại KHÔNG cần.


0

Ubuntu 18.04 * Cách sử dụng: /etc/init.d/cron {start | stop | status | restart | tải lại | buộc tải lại}

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.