คุณจะสร้างสคริปต์หรือแอพให้ทำงานหรือหยุดทำงานโดยอัตโนมัติเมื่อระบบถูกบูทผู้ใช้ล็อกออนในเวลาที่กำหนดเมื่อมีการต่อดิสก์ ฯลฯ
คุณจะสร้างสคริปต์หรือแอพให้ทำงานหรือหยุดทำงานโดยอัตโนมัติเมื่อระบบถูกบูทผู้ใช้ล็อกออนในเวลาที่กำหนดเมื่อมีการต่อดิสก์ ฯลฯ
คำตอบ:
หากคุณต้องการให้บางสิ่งบางอย่างทำงานเมื่อผู้ใช้เข้าสู่ระบบวิธีที่ง่ายที่สุดคือการใช้ GUI คุณสามารถ
System Prefs > Accounts > Login Items
หน้าจอและเพิ่มรายการโดย
+
สัญลักษณ์.app
ลงบนบานหน้าต่างOptions
จากนั้นเลือกOpen at Login
หากคุณต้องการเปิดตัวสิ่งที่ไม่ใช่.app
หรือคุณต้องการควบคุมการเปิดใช้งานเช่น:
แล้วคุณต้องการที่จะใช้แก้ปัญหาทางเทคนิคlaunchd
ที่เป็น
วิธีที่ง่ายที่สุดในการตั้งค่าlaunchd
ไฟล์กำหนดค่าคือการใช้เครื่องมือช่วย ในขณะที่เขียนวิธีที่ได้รับความนิยมมากที่สุดคือLingon (ซึ่งมีเวอร์ชั่นฟรีเก่ากว่าจาก SourceForge) หรือเครื่องมือเว็บไซต์ PList
หากคุณไม่ต้องการที่จะใช้ Lingon หรือ plist เว็บไซต์และเพียงต้องการที่จะใช้เครื่องมือดิบที่มีอยู่ในระบบคุณสามารถเขียนของคุณเองlaunchd
plist
ด้วยมือ
นี่คือสคริปต์เรียกใช้ของฉันเพื่อเรียกใช้ SomeApp อย่างต่อเนื่องหลังจากบูทระบบ (ขึ้นอยู่กับการล็อกอินของผู้ใช้) มันอยู่ใน / System / Library / LaunchAgents / และเรียก SomeApp.restart.plist หากทำงานตามการล็อกอินของผู้ใช้มันจะถูกเก็บไว้ใน ~ / Library / LaunchAgents /
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>SomeApp.restart</string>
<key>ProgramArguments</key>
<array>
<string>/path/to/SomeApp.app/Contents/MacOS/SomeApp</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>5</integer>
<key>Minute</key>
<integer>10</integer>
</dict>
</dict>
</plist>
โหลดครั้งเดียวด้วย
launchctl load ~/Library/LaunchAgents/SomeApp.restart.plist
RunAtLoad
ตัวเลือกที่จะเปิดตัวแอพลิเคชัน launchctl ครั้งแรกที่ทำงานนี้KeepAlive
ตัวเลือกที่จะ re-เปิดโปรแกรมถ้ามันเกิดปัญหาStartCalendarInterval
จะใช้มันในเวลาที่แน่นอน สันนิษฐานว่านี่เป็นสิ่งที่ไม่เกิดร่วมกันกับสองรายการก่อนหน้า แต่รวมอยู่ด้วยเพื่อแสดงสิ่งที่สามารถทำได้launchd
มีตัวเลือกอีกมากมายที่สามารถพบได้โดยการทดสอบกับ Lingon หรือโดยการอ่านหน้าคนสำหรับเป็นlaunchctl
, launchd.plist
, plist
, launchd.conf
ฯลฯ
launchctl load -w ...
เพื่อทำการเปลี่ยนแปลงแบบถาวร จากความคิดเห็นของคุณฉันได้อัปเดตสคริปต์ตัวกำหนดค่า OSX poweruser
Lingon ยังคงใช้งานได้ ฉันเพิ่งใช้เมื่อสัปดาห์ที่แล้วเพื่อสร้าง "งานที่กำหนด" หลังจากฉันดาวน์โหลดฉันต้องใช้ตัวอัปเดตอัตโนมัติเพื่อรับเวอร์ชันล่าสุด แต่ใช้งานได้ดี
หากจำเป็นเท่านั้นที่จะเรียกใช้เมื่อระบบถูกบูตเพียงใช้แท็บรายการเข้าสู่ระบบของบานหน้าต่างการตั้งค่าบัญชีของคุณในการตั้งค่าระบบ
หากเป็นสคริปต์ให้ใช้ AppleScript Editor เพื่อบันทึกเป็นแอปพลิเคชัน หากไม่ใช่สคริปต์ AppleScript คุณยังสามารถใช้ AppleScript เพื่อเรียกใช้สคริปต์ดังนี้:
do shell script "your script here"
อย่าลืม Loginhooks
แม้ว่ามันจะทำงานเป็นรูท แต่คุณก็ควรที่จะให้มันรันสคริปต์ $ HOME / .loginhook โดยใช้บางสิ่งเช่นนี้:
#!/bin/sh
home=`eval echo ~$user`
if [ -x "$home/.loginhook" ]; then
logger -t $0 "executing .loginhook of user $user"
su - $user -c "$home/.loginhook"
fi
จากนั้นเพิ่มคำสั่งใดก็ได้ที่คุณต้องการใน ~ / .loginhook
นอกจากนี้แม้ว่า 'launchd' จะเป็น "วิธีของ Mac" crontab ยังคงเป็นตัวเลือกที่ทำงานได้อย่างสมบูรณ์แบบและง่ายต่อการแก้ไขด้วยมือมากกว่าไฟล์ launchd XML
/path/to/script
และsudo defaults write com.apple.loginwindow LoginHook /path/to/script
? และจุดในการเรียกใช้สคริปต์ในไดเรกทอรีบ้านคือผู้ใช้แต่ละคนสามารถมีกำหนดเอง (หรือไม่) ~/.loginhook
?
การเรียกใช้แอพตามเวลาที่กำหนดสามารถทำได้อย่างง่ายดายใน iCal เพราะฉันเพิ่งค้นพบต้องขอบคุณฟอรัมอื่น!
สิ่งหนึ่งที่ควรระวังคือถ้าคุณมี Mac หลายเครื่องที่แชร์ข้อมูลผ่าน iCloud กิจกรรมนี้จะทำงานบนแอพเหล่านั้นซึ่งคุณอาจต้องการหรือไม่ต้องการ ในการทำให้สิ่งนี้เกิดขึ้นได้ใน Mac เครื่องเดียวคุณต้องสร้างกิจกรรมในปฏิทิน 'บน My Mac' ซึ่งคุณสามารถทำได้ดังนี้ ...
ฉันเพิ่งค้นพบสิ่งนี้ด้วยตัวเองและรู้สึกประหลาดใจกับเคล็ดลับทั้งสองดังนั้นฉันคิดว่าฉันจะแบ่งปันที่นี่
ฉันได้รับข้อมูลจากคนที่เป็นประโยชน์เหล่านี้ที่นี่ ... ดังนั้นขอบคุณคน! ...
http://osxdaily.com/2013/04/15/launch-file-app-scheduled-date-mac-os-x/