Tại sao cron bị phản đối?


21

Tôi mới phát hiện ra rằng cronđã bị phản đối trong Mac OS X. Tại sao lại như vậy, và cuối cùng nó sẽ bị xóa hoàn toàn khỏi các bản phát hành trong tương lai?

Câu trả lời:


24

Với việc phát hành Mac OS 10.4, launchdđã được chọn để thay thế crontrong Mac OS. Đây là phiên bản được lưu trong bộ nhớ cache của trang launchd từ Kết nối nhà phát triển của Apple vào năm 2005. Nó giải thích lý do tại sao cronbị phản đối, cũng như các lợi ích launchdtừ quan điểm của Apple.

Bản tóm tắt: launchdđược tạo ra để không chỉ thay thế cronmà còn init, xinetdcho hiệu suất tốt hơn và kiểm soát tốt hơn cấu hình và các nhiệm vụ thực tế bản thân.

Trình launchdnền cung cấp một giao diện duy nhất, được tiêu chuẩn hóa cho bất kỳ và tất cả các chương trình được hệ thống tự động bắt đầu. Hơn nữa, các tệp cấu hình xác định thời điểm chạy chương trình đã cho cũng có thể chỉ định giới hạn tài nguyên và biến môi trường, giúp đơn giản hóa việc thiết lập và bảo mật cho nhiều chương trình. Định dạng tệp cấu hình tương tự được sử dụng cho dù một công việc được khởi chạy một lần khi khởi động hệ thống hoặc đăng nhập người dùng, theo yêu cầu qua mạng hoặc theo các khoảng thời gian.


13

Bài viết trên wikipedia về launchd có một bản tóm tắt rất hay, các cuộc thảo luận mở rộng cũng như một số video tuyệt vời và các liên kết bên ngoài để tìm hiểu sâu hơn về quyết định này của Apple.

Tóm lại, launchdthay thế 7 nhiệm vụ chính và một khối các tập lệnh ( inetd , initRC và các cấu trúc kịch bản shell liên quan, crond , atd , watchdogd , SystemStarter ) bằng một công cụ có nguồn mở mạnh mẽ hơn nhiều.

Tại sao:

  • nhanh hơn
  • quyền lực hơn
  • thống nhất và tập trung
  • an toàn hơn

Khi nào: 29 tháng 4 năm 2005 (Khi OS X Tiger được phát hành để bán)

Không có gì ngăn cản tất cả chúng ta sử dụng launchd để bắt đầu cron ngay bây giờ trên Tiger, Leopard hoặc Snow Leopard.

Nếu Apple trong tương lai ngừng vận chuyển /usr/sbin/cron, chắc chắn nó sẽ kết thúc giống như wget và các công cụ nguồn mở hoàn thiện khác được biên dịch và cần được thêm vào như một công cụ dòng lệnh riêng biệt.


5

Tôi thậm chí không biết nếu cron đã bị phản đối. man crontabdường như chỉ ra rằng nó đã không:

(Ghi chú của Darwin: Mặc dù cron (8) và crontab (5) được hỗ trợ chính thức theo Darwin, chức năng của chúng đã được hấp thụ vào launchd (8), cung cấp một cách linh hoạt hơn để thực hiện các lệnh tự động. Xem launchctl (1) để biết thêm thông tin .)

Hướng dẫn lập trình dịch vụ và daemon nói rằng nó đã không được chấp nhận mặc dù:

Lưu ý: Mặc dù nó vẫn được hỗ trợ, cron không phải là giải pháp được đề xuất. Nó đã không được ủng hộ trong launchd.

crontab cũng được POSIX yêu cầu và OS X được cho là tuân thủ SUS.

Trong mọi trường hợp, cron có thể sẽ không ngừng hoạt động bất cứ lúc nào và tôi không biết liệu có thể nói là chậm hơn hoặc kém an toàn hơn launchd hay không. Quá trình cron nên sử dụng hầu như không có thời gian hoặc bộ nhớ CPU. Một số lợi thế của việc sử dụng hoặc học cron là nó cũng có sẵn trên các nền tảng khác và định dạng cấu hình đơn giản hơn.

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.