ฉันเพิ่งพบว่าcron
เลิกใช้แล้วใน Mac OS X ทำไมถึงเป็นเช่นนั้นและในที่สุดมันจะถูกลบออกจากการเปิดตัวในอนาคตอย่างสมบูรณ์หรือไม่
ฉันเพิ่งพบว่าcron
เลิกใช้แล้วใน Mac OS X ทำไมถึงเป็นเช่นนั้นและในที่สุดมันจะถูกลบออกจากการเปิดตัวในอนาคตอย่างสมบูรณ์หรือไม่
คำตอบ:
ด้วยการเปิดตัว Mac OS 10.4 launchd
ได้รับเลือกให้แทนที่cron
ใน Mac OS นี่คือหน้าแคชชวลของรุ่น launchdจาก Apple Developer Connection ในปี 2005 มันอธิบายว่าทำไมcron
เลิกใช้แล้วรวมถึงผลประโยชน์launchd
จากมุมมองของ Apple
สรุป: launchd
ถูกสร้างขึ้นเพื่อไม่เพียงแค่เปลี่ยนcron
แต่ยังinit
, xinetd
สำหรับประสิทธิภาพที่ดีขึ้นและการควบคุมที่ดีกว่าการตั้งค่าและงานที่เกิดขึ้นจริงของตัวเอง
launchd
ภูตข้อเสนอเดียวที่ได้มาตรฐานอินเตอร์เฟซการใด ๆ และโปรแกรมทั้งหมดที่ตั้งขึ้นโดยอัตโนมัติโดยระบบ นอกจากนี้ไฟล์การกำหนดค่าที่กำหนดว่าเมื่อใดที่จะเรียกใช้โปรแกรมที่กำหนดยังสามารถระบุข้อ จำกัด ของทรัพยากรและตัวแปรสภาพแวดล้อมซึ่งทำให้การตั้งค่าและความปลอดภัยง่ายขึ้นสำหรับหลาย ๆ โปรแกรม รูปแบบไฟล์การกำหนดค่าเดียวกันนี้จะใช้งานไม่ว่าจะเป็นการเปิดใช้งานหนึ่งครั้งเมื่อเริ่มต้นระบบหรือเข้าสู่ระบบของผู้ใช้ตามความต้องการผ่านเครือข่ายหรือตามช่วงเวลา
บทความวิกิพีเดียเกี่ยวกับlaunchdมีบทสรุปที่ดีมากรวมถึงการอภิปรายที่กว้างขวางรวมถึงวิดีโอที่ยอดเยี่ยมและลิงก์ภายนอกสำหรับการดำน้ำลึกในการตัดสินใจครั้งนี้ของ Apple
สรุปlaunchd
แทนที่ 7 งานหลักและ boatload ของสคริปต์ ( inetd , initและrcและโครงสร้างเชลล์สคริปต์ที่เกี่ยวข้องcrond , atd , watchdogd , SystemStarter ) ด้วยเครื่องมือที่มาเปิดที่มีประสิทธิภาพมากกว่า
ทำไม:
เมื่อ: 29 เมษายน 2548 (เมื่อ OS X Tiger วางจำหน่ายแล้ว)
ไม่มีอะไรที่ป้องกันไม่ให้พวกเราทุกคนใช้ Launchd เพื่อเริ่ม cron ตอนนี้กับ Tiger, Leopard หรือ Snow Leopard
ในอนาคตหาก Apple หยุดการจัดส่ง/usr/sbin/cron
มันจะจบลงอย่างแน่นอนเช่นwgetและเครื่องมือโอเพนซอร์สอื่น ๆ ที่รวบรวมและจำเป็นต้องเพิ่มเป็นเครื่องมือบรรทัดคำสั่งแยกต่างหาก
ฉันไม่รู้ด้วยซ้ำว่า cron ถูกคัดค้านหรือไม่ man crontab
ดูเหมือนว่าจะไม่ได้:
(หมายเหตุดาร์วิน: แม้ว่า cron (8) และ crontab (5) ได้รับการสนับสนุนอย่างเป็นทางการภายใต้ดาร์วินฟังก์ชันการทำงานของพวกเขาจะถูกดูดซึมเข้าสู่ launchd (8) ซึ่งให้วิธีที่ยืดหยุ่นมากขึ้นในการดำเนินการคำสั่งอัตโนมัติดู Launchctl (1) สำหรับข้อมูลเพิ่มเติม .)
คู่มือการเขียนโปรแกรม Daemons and Servicesบอกว่าเลิกใช้แล้ว:
หมายเหตุ: แม้ว่าจะยังคงรองรับ cron ไม่ใช่โซลูชันที่แนะนำ มันเลิกใช้แล้วในความโปรดปรานของ launchd
crontab เป็นสิ่งจำเป็นสำหรับ POSIXและ OS X ควรเป็นไปตามมาตรฐาน SUS
ไม่ว่าในกรณีใด cron จะไม่หยุดทำงานเร็ว ๆ นี้และฉันไม่รู้ว่าจะช้ากว่าหรือปลอดภัยกว่า launchd หรือไม่ กระบวนการ cron ควรใช้เกือบไม่มีเวลา CPU หรือหน่วยความจำ ข้อดีของการใช้หรือการเรียนรู้ cron คือมันยังมีอยู่บนแพลตฟอร์มอื่น ๆ และรูปแบบการกำหนดค่านั้นง่ายกว่า