Sistem önyüklendiğinde, kullanıcı oturum açtığında, belirli bir zamanda, bir disk takıldığında, vb.
Sistem önyüklendiğinde, kullanıcı oturum açtığında, belirli bir zamanda, bir disk takıldığında, vb.
Yanıtlar:
Bir kullanıcı oturum açtığında çalışacak bir şey istiyorsanız, en kolay yol GUI'yi kullanmaktır. Yapabilirsin
System Prefs > Accounts > Login Items
Ekrana gidin ve öğeyi buraya ekleyin.
+
sembolünü tıklatarak.app
bölmeyi sürükleyip bırakmaOptions
, ardındanOpen at Login
Eğer olmayan bir şeyi başlatmak istiyorsanız .app
, ya da onu başlatırken daha fazla kontrol sahibi olmak istiyorsanız, örneğin:
o zaman ki teknik çözümü kullanmak istersiniz launchd
.
Bir launchd
yapılandırma dosyası oluşturmanın en kolay yolu , yardımcı olacak bir araç kullanmaktır. Yazma sırasında en popüler yöntem Lingon (SourceForge'dan daha eski ve ücretsiz bir sürümü olan) veya PList Web sitesi aracıdır.
Lingon veya PList Web Sitesini kullanmak istemiyorsanız ve sadece sistemdeki mevcut iş araçlarını kullanmak istiyorsanız, kendinizinkini launchd
plist
el ile yazabilirsiniz.
İşte sistem önyüklemesinden sonra sürekli olarak SomeApp'ı çalıştırmak için başlattığım komut dosyası (giriş yapan bir kullanıcıdan bağımsız). Bu / System / Library / LaunchAgents / içinde ve SomeApp.restart.plist olarak adlandırılır. Bir kullanıcı girişine göre çalıştırılırsa, ~ / Library / LaunchAgents / klasöründe saklanabilir.
<?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>
Bir kez yükle
launchctl load ~/Library/LaunchAgents/SomeApp.restart.plist
RunAtLoad
Seçenek ilk kez launchctl bu çalışan uygulamayı başlatacak.KeepAlive
Çökerse seçenek uygulamayı yeniden başlatacak.StartCalendarInterval
Belli bir anda çalışacaktır. Muhtemelen bu, önceki ikisiyle karşılıklı olarak özeldir, ancak neler yapılabileceğini göstermek için dahil edilmiştir.launchd
Lingon deneyerek ya man sayfalarını okuyarak bulunabilir birçok ek seçenek vardır launchctl
, launchd.plist
, plist
, launchd.conf
, vb
launchctl load -w ...
Değişikliği kalıcı yapmak için de kullanabilirsiniz . Geri bildiriminize dayanarak OSX poweruser configurator betiğimi
Lingon hala çalışıyor. Geçen hafta "planlanmış bir görev" oluşturmak için kullandım. İndirdikten sonra en son sürümü almak için otomatik güncelleyicisini kullanmak zorunda kaldım ancak iyi çalışıyor.
Yalnızca sistem önyüklendiğinde çalıştırmak gerekliyse , Sistem tercihlerindeki Hesap Tercihleri bölmesinin Giriş Öğeleri sekmesini kullanmanız yeterlidir .
Bir komut dosyasıysa, bir uygulama olarak kaydetmek için AppleScript Editor'ı kullanın. Eğer bir AppleScript betiği değilse, betiği bu şekilde çalıştırmak için yine de AppleScript kullanabilirsiniz:
do shell script "your script here"
Loginhooks'u unutma.
Kök olarak çalışsalar da, böyle bir şey kullanarak $ HOME / .loginhook betiğini çalıştırabilmeniz gerekir:
#!/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
Sonra ~ / .loginhook istediğiniz komutları ekleyin
Ayrıca, 'launchd' 'Mac yolu' olsa da, crontab hala mükemmel bir seçenek olup, elle başlatmak için XML çalıştırma dosyalarından çok daha kolaydır.
Şahsen, mutlu bir şekilde Lingon için 5 dolar ödedim .
/path/to/script
, ve sudo defaults write com.apple.loginwindow LoginHook /path/to/script
? Ve ev dizininde bir komut dosyası çalıştıran nokta her kullanıcı özel (veya hiç) sahip olmasıdır ~/.loginhook
?
Belirli bir zamanda bir uygulamayı çalıştırmak iCal'da kolayca yapılabilir, çünkü başka bir forum sayesinde şimdiden öğrendim!
Unutulmaması gereken bir şey, iCloud üzerinden bir şeyler paylaşan birden fazla Mac'iniz varsa, bu etkinliğin isteyebileceğiniz veya istemeyeceğiniz uygulamalarda da çalışacağıdır. Bunu yalnızca tek bir Mac'te yapmak için, etkinliği aşağıdaki gibi yapabileceğiniz bir 'Mac'imde' takviminde oluşturmanız gerekir ...
Bunu sadece kendim öğrendim ve her iki ipucundan da hoş bir sürpriz oldu, bu yüzden onları burada paylaşacağımı düşündüm.
Buradaki yararlı insanlardan bilgi aldım ... çok teşekkür ederim millet!
http://osxdaily.com/2013/04/15/launch-file-app-scheduled-date-mac-os-x/