~/Library/LaunchAgents
Mavericks'te işe yarayan lansmanlı bir servistim var . Ancak Yosemite genel beta sürümünde başlamaz. Daemon plist böyledir (kullanıcı adım darksair
UID 501'de)
<?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>
Temelde ~/bin/retrmail.py
her 5 dakikada bir çalışması gerekiyordu .
Yosemite lansmanında 2.0'a yükseltildiğini ve launchctl'nin yeni komutları olduğunu fark ettim. denedim
sudo launchctl kickstart user/501/org.darksair.retrmail
ve dedi ki
Could not find service "org.darksair.retrmail" in domain for uid: 501
Eski okulu da denedim
sudo launchctl load ~/Library/LaunchAgents/retrmail.plist
ve dedi ki
/Users/darksair/Library/LaunchAgents/retrmail.plist: Path had bad ownership/permissions
Dosya bana ve personel grubuna aittir. Hem 644 hem de 600 izni aynı hatayı kullanarak denedim.
Peki Yosemite'de fırlatma töreni nasıl başlatılacağını bilen var mı?
GÜNCELLEME: Fırlatma aracısı dosyamın sahip olması gerekiyor gibi görünüyor root:wheel
. Boğulduktan sonra denedim.
sudo launchctl load ~/Library/LaunchAgents/retrmail.plist
ve herhangi bir hata vermedi. Ve bence benim deamon düzgün çalışıyor. Bu soruyu açık bırakacağım çünkü başlatılan belgenin, başlatıcı aracı dosyasının arka plan programı çalıştıran kullanıcının sahip olabileceğini açıkça hatırladığımı hatırlıyorum.
GÜNCELLEME2: Hayır düzgün çalışmıyordu. Sadece bir kez koşuldu, ama sanki boşaltılmış gibi.
GÜNCELLEME3: Yosemite public beta 3'e yükselttim ve acentemi bunun için değiştirdim
<?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>
Bu ajanı yeniden yükledim ve bence şimdi düzgün çalışıyor. Bu soruyu hala açık bırakıyorum çünkü önceki sorunumda neyin yanlış olduğunu bilmiyorum.
Sonuç olarak, bulduğum şey root:wheel
, yüklemeyi yapabilmek için hakimin sahibini değiştirmek zorunda olduğum .