ฉันมี launchd daemon ~/Library/LaunchAgents
ซึ่งทำงานได้ดีใน Mavericks แต่มันจะไม่เริ่มต้นในเบต้าสาธารณะโยเซมิตี Plist daemon เป็นแบบนี้ (ชื่อผู้ใช้ของฉันคือdarksair
กับ UID 501)
<?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>org.darksair.retrmail</string>
<key>ProgramArguments</key>
<array>
<string>/Users/darksair/bin/retrmail.py</string>
</array>
<key>KeepAlive</key>
<false/>
<key>StartInterval</key>
<integer>300</integer>
<key>LaunchOnlyOnce</key>
<false/>
<key>UserName</key>
<string>darksair</string>
<key>ProcessType</key>
<string>Standard</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/Users/darksair/Python/bin:/Users/darksair/Python3/bin:/Users/darksair/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</dict>
<key>StandardOutPath</key>
<string>/Users/darksair/logs/retrmail.log</string>
<key>StandardErrorPath</key>
<string>/Users/darksair/logs/retrmail.log</string>
</dict>
</plist>
โดยทั่วไปมันควรจะทำงาน~/bin/retrmail.py
ทุก 5 นาที
ฉันสังเกตเห็นว่าใน Yosemite launchd ได้รับการอัพเกรดเป็น 2.0 และ launchctl มีคำสั่งใหม่ ฉันเหนื่อย
sudo launchctl kickstart user/501/org.darksair.retrmail
และมันก็บอกว่า
Could not find service "org.darksair.retrmail" in domain for uid: 501
ฉันลองโรงเรียนเก่า
sudo launchctl load ~/Library/LaunchAgents/retrmail.plist
และมันก็บอกว่า
/Users/darksair/Library/LaunchAgents/retrmail.plist: Path had bad ownership/permissions
ไฟล์นี้เป็นของฉันและกลุ่มพนักงาน ฉันลองทั้งสิทธิ์ 644 และ 600 ด้วยข้อผิดพลาดเดียวกัน
ดังนั้นใครจะรู้วิธีที่จะเปิดตัวภูต launchd ในโยเซมิตีอย่างถูกต้อง?
UPDATE: root:wheel
ดูเหมือนว่าไฟล์เปิดตัวตัวแทนของฉันจะต้องมีการเป็นเจ้าของโดย หลังจาก chown ฉันพยายาม
sudo launchctl load ~/Library/LaunchAgents/retrmail.plist
และมันก็ไม่มีปัญหาข้อผิดพลาด และฉันคิดว่า deamon ของฉันทำงานอย่างถูกต้อง ฉันจะเปิดคำถามนี้ทิ้งไว้เพราะฉันจำได้ว่าเอกสาร launchd ระบุไว้อย่างชัดเจนว่าผู้ใช้ที่เป็นเจ้าของ daemon สามารถเปิดไฟล์เอเจนต์เปิดตัวได้
UPDATE2: ไม่ทำงานไม่ถูกต้อง มันทำงานเพียงครั้งเดียว แต่ไม่ใช่อีกครั้งราวกับว่ามันถูกถอดออก
อัปเดต 3: ฉันอัปเกรดเป็นสาธารณะเบต้าโยเซมิตี 3 และเปลี่ยนตัวแทนของฉันเป็นสิ่งนี้
<?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>org.darksair.retrmail</string>
<key>ProgramArguments</key>
<array>
<string>/Users/darksair/bin/retrmail.py</string>
</array>
<key>StartInterval</key>
<integer>300</integer>
<key>UserName</key>
<string>darksair</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/Users/darksair/Python/bin:/Users/darksair/Python3/bin:/Users/darksair/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</dict>
<key>StandardOutPath</key>
<string>/Users/darksair/logs/retrmail.log</string>
<key>StandardErrorPath</key>
<string>/Users/darksair/logs/retrmail.log</string>
</dict>
</plist>
ฉันโหลดตัวแทนนี้และฉันคิดว่าตอนนี้มันทำงานได้อย่างถูกต้อง ฉันยังคงเปิดคำถามนี้อยู่เพราะฉันไม่รู้ว่าเกิดอะไรขึ้นกับนักวางแผนก่อนหน้านี้ของฉัน
โดยสรุปสิ่งที่ฉันพบคือฉันต้องเปลี่ยนเจ้าของ Plist เป็นroot:wheel
เพื่อโหลด