Düzenli olarak planlanmış bir zamanda çalıştırılmasının aksine bu prosedürü başlatmak istediğinizi farz ediyorum.
Benim yaklaşımım bunu komut satırından başlatmak olacaktır, ancak herhangi bir komut bir Automator betiğinin bir kabuk betiği bileşeninde bazı değişikliklerle çalıştırılabilir. Aşağıdaki yaklaşım işi tamamlamak için birkaç bileşeni bir araya getirir:
tellUygulamadan çıkmak için bir komut
- Bilgisayarı uyku moduna geçirmek için bir komut satırı çağrısı
- Belirli bir süre için 1 ve 2'yi programlamak için bir komut satırı çağrısı.
1. Uygulamaya istifa etmesini söylemek
Bu kadar basit olabilir:
osascript -e 'tell application "AppName" to quit'
2. Bilgisayarı uyku moduna geçirmek
pmsetDaha fazla ayrıntıya bir göz atın , ancak aşağıdaki komutu vermek bilgisayarınızı uyku moduna geçirir:
pmset sleepnow
3. Belirli bir zamanda çalıştırılacak olan bir işlem planlamak
At komutuna bir göz atın . Bu komut size bir komutun çalışması için bir süre belirtme yeteneği verir. Varsayılan olarak olmadığı için bu işlevi etkinleştirmeniz gerekir. Artalanı etkinleştirmek için atrunaşağıdaki komutu çalıştırın [SU referansı] :
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
Etkinleştirdikten sonra atrun, herhangi bir komut belirli bir süre için belirli bir zaman için yayınlanarak programlanabilir.
echo "<command>" | at HH:MM
hangi çalışır çünkü varsayılan olarak atgiriş alır stdin. Daha basit bir yaklaşım, bir dosyada listelenen komutları çalıştırmaktır. -fBayrak kullanılarak bir dosya çalıştırılabilir , ardından aşağıdaki gibi çalıştırılacak komut dosyasının adı:
at -f /path/to/file HH:MM
Hepsini bir araya koy
Aşağıdaki atrunetkin olduğunu varsayar . Oyuncak örneği olarak, Mail'i bırakmak ve bilgisayarı 11: 00'da uyku moduna geçirmek istediğimi varsayalım. Çalıştırılmasını istediğim komutları içeren bir dosya oluşturacağım:
osascript -e 'tell application "Mail" to quit'
pmset sleepnow
Bu dosyayı kaydedin quit-and-sleepve sonra komut satırında çalıştırın.
at -f /path/to/quit-and-sleep 23:00
Uyarılar
Mail'in gerçekten kapalı olduğundan emin olmak için herhangi bir kontrol yapmadım. Bu komut dosyası ayrıca, bilgisayarı uyku moduna geçirmenin yoluna girecek hiçbir şeyin olmayacağını varsayar. İstediğiniz şey için başlangıç noktası olarak basitleştirdim.