OS X: มีโปรแกรมตัวกำหนดตารางเวลาในตัวหรือไม่


10

ฉันต้องการกำหนดเวลาให้งานดำเนินการกับพารามิเตอร์ ณ เวลา / วันที่ที่กำหนดในอนาคต

OS X มีเครื่องมือดังกล่าวหรือไม่ (แม้ว่าจะเป็นบรรทัดคำสั่ง) ถ้าไม่มีมีเครื่องมือฟรีหรือค่อนข้างถูกออกมีเพื่อให้บรรลุนี้

คำตอบ:


14

ในขณะที่คำตอบ KeithB เป็นที่ถูกต้องจริงcron จะถูกเลิกในความโปรดปรานของOS X launchdที่เฉพาะเจาะจง

คำสั่งที่จะเรียกใช้ผ่านlaunchdได้อธิบายไว้ใน Apple "plists" หรือรายการคุณสมบัติซึ่งเป็นไฟล์ XML จริงๆ:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.
com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>  
    <key>Label</key>
    <string>com.apple.periodic-daily</string>
    <key>ProgramArguments</key>
    <array> 
        <string>/usr/sbin/periodic</string>
        <string>daily</string>
    </array>
    <key>LowPriorityIO</key>
    <true/>
    <key>Nice</key>
    <integer>1</integer>
    <key>StartCalendarInterval</key>
    <dict>  
        <key>Hour</key>
        <integer>3</integer>
        <key>Minute</key>
        <integer>15</integer>
    </dict>
</dict>
</plist>

ต้องบอกว่ามันไม่ได้เป็นวิธีที่ผู้ใช้ที่เป็นมิตร คำถามนี้ใน SuperUserแสดงรายการตัวเลือก GUI สองสามอย่างซึ่งรวมถึง:

Lingon Screencap

launchd Editor ($ 5 แชร์แวร์)

จับภาพหน้าจอ


3
มันไม่ใช่ลักษณะที่ยุติธรรมที่ launchd เป็น "กรรมสิทธิ์" Apple เปิดแหล่งที่มาอย่างกระตือรือร้นที่launchd.macosforge.orgและได้รับการจัดส่งไปยัง FreeBSD
ohmantics

@ohmantics: ตกลงจุดยุติธรรม "เจาะจง" เป็นคำอธิบายที่ดีกว่าหรือไม่
Josh

ใกล้พอ :-) แอปเปิ้ลสร้างมันขึ้นมา แต่ฉันคาดหวังว่ามันจะเห็นการยอมรับที่กว้างขึ้นในระบบปฏิบัติการคล้าย BSD
ohmantics

@calavera: ขอบคุณสำหรับการแก้ไข ฉันเกลียดเมื่อเอกสารในเว็บไซต์หลักถูกลบออกเช่นนั้น ฉันได้เพิ่มลิงค์ใหม่ซึ่งมีความเกี่ยวข้องน้อยกว่าเศร้ามากไม่ได้กล่าวถึงเฉพาะcronการเลิกใช้ :-(
Josh

np ... น่าเสียดายที่ Apple ดูเหมือนจะทำมันเยอะ: /
Robert S Ciaccio

4

คุณสามารถเริ่มต้นเวิร์กโฟลว์อัตโนมัติด้วย iCal หากคุณต้องการบางสิ่งที่ง่าย มิฉะนั้นฉันจะทำมันผ่าน launchd


ปัญหาเดียวกับ iCal คือการที่คุณจะต้องมีการลงทะเบียนในงานที่จะ run (ถูกต้องหรือไม่)
จอช

ใช่ฉันคิดว่าคุณต้องเข้าสู่ระบบก่อนจึงจะทำได้ ฉันอยากจะแนะนำขั้นตอนการเปิดตัวมากกว่านี้ แต่บางคนก็อยากจะใช้ iCal และเข้าสู่ระบบอยู่เสมอ
jmlumpkin

iCal เป็นทางออกที่ง่ายกว่ามาก! ดูหน้าจอที่ฉันโพสต์ ฉันแน่ใจว่าสามารถดูว่าพวกเขาจะได้รับการข่มขู่ :-)
จอช

เพื่อความชัดเจนภาพหน้าจอของคุณใช้สำหรับการตั้งค่า launchd ใช่ไหม
jmlumpkin

2

มีเครื่องมือบรรทัดคำสั่ง Unix สองตัวที่ทำในสิ่งที่คุณต้องการ atจะช่วยให้คุณสามารถจัดตารางงานให้ทำงานหนึ่งครั้งในเวลาที่กำหนดในอนาคต แน่นอนส่วนหนึ่งของงานอาจกำหนดเวลางานอื่น

cron ช่วยให้คุณจัดตารางเวลางานที่จะดำเนินการเป็นประจำในเวลาเดียวกันตามเวลาของวัน, วันในสัปดาห์และอื่น ๆ

สิ่งหนึ่งที่ควรทราบก็คือทั้งสองสิ่งนี้จะไม่ทำงานหากเครื่องของคุณไม่ทำงานตามเวลาที่กำหนด มีทางเลือกอื่นเช่น anacron ที่จะเรียกใช้งานที่กำหนดเวลาไว้ในครั้งต่อไปที่บูทเครื่อง


1
โปรดทราบว่าโดยค่าเริ่มต้นคำสั่ง "at" จะถูกปิดใช้งาน ใช้ "man atrun" เพื่อหาวิธีเปิดใช้งาน
Kristopher Johnson

2

iCal สามารถใช้เพื่อเรียกใช้ AppleScript เรียกใช้แอปพลิเคชันและทำงานตามกำหนดเวลา

มีข้อ จำกัด ในการใช้ iCal แต่มีอยู่ใน Mac OS X และติดตั้งง่าย ข้อ จำกัด และการมองเห็นอย่างชัดเจนเกี่ยวกับวิธีตั้งค่า AppleScript ที่กำหนดเวลาไว้จะรวมอยู่ในลิงก์ด้านบน

การตั้งค่า AppleScript ตามกำหนดเวลาด้วย iCal บน Mac OS X

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.