OS X'te önyükleme zamanında çalıştırmak için bir komut dosyası (bash / zsh / ruby / ...) istiyorum. Bunu yapmanın en basit yolu nedir, xml / plist dosyalarıyla uğraşmadan ve tercihen meta AppleScript yapmaya gerek yok .
OS X'te önyükleme zamanında çalıştırmak için bir komut dosyası (bash / zsh / ruby / ...) istiyorum. Bunu yapmanın en basit yolu nedir, xml / plist dosyalarıyla uğraşmadan ve tercihen meta AppleScript yapmaya gerek yok .
Yanıtlar:
MacOS X, yeniden başlatma zamanında başlatmak için özel meta etiketlere sahip Vixie cron'u kullanır. Dosya biçimi için kılavuz sayfasına bakın .
gibi bir şey:
@reboot /path/to/script.sh
crontab'ınızda çalışır. Bunun launchd'den daha iyi bir çözüm olduğundan emin değilim, muhtemelen launchd'a cron'dan bakan daha fazla meta aracınız var.
Fikrinizi değiştirmeniz durumunda:
<?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.superuser.245713</string>
<key>ProgramArguments</key>
<array>
<string>/path/to/script.sh</string>
</array>
<key>UserName</key>
<string>someuser</string>
</dict>
</plist>
Olarak saklayın com.superuser.245713.plist
içinde /Library/LaunchAgents/
ve yapmak root:wheel
sahibi / grubun.
/Library/LaunchAgents
ziyade koymak daha iyidir ve altındaki kişi üçüncü taraf şeyler için daha fazla kullanılır. Ayrıca, "kök olarak çalışacak öğeler, genellikle arka plan işlemleri" olmalıdır, burada "kullanıcı olarak veya kullanıcı ülkesi bağlamında". Bu alıntıların kaynağı , fırlatma soruları için danıştığım fırlatma hakkında harika bir makale . /System/Library/LaunchDaemons
/System
/Library
LaunchDaemons
LaunchAgents
Ayrıca, bir kullanıcı oturum açtığında makinenin önyüklemesi yapmak yerine komut dosyasının çalışmasını (kök olarak) tercih ediyorsanız Oturum Açma Kancaları da vardır .
cron
OS X varsayılan olarak giriş ile o kadar iyi olmasa da (sadece birkaç gün önce bir konu vardı).