Bisakah saya menulis skrip untuk mengambil tindakan tepat sebelum komputer akan tidur?

1

Saya pikir komputer saya secara acak tidak menyinkronkan email dengan benar dengan Apple Mail, tetapi itu hanya masalah ketika terbangun dari tidur.

Masalah itu tidak ada di sini atau di sana. Yang ingin saya lakukan adalah menulis skrip / sesuatu yang akan keluar dari Apple Mail jika mendeteksi bahwa komputer akan tidur.

Idealnya, akan ada proses serupa untuk membuka Apple Mail saat bangun tidur, tapi itu bukan masalah.

Saya mencoba mencari perpustakaan sistem acara dari beberapa jenis, tetapi semua yang saya dapat temukan adalah fsevents (yang saya pikir tidak memiliki apa-apa tentang tidur).

Terima kasih!

rublind
sumber

Jawaban:

2

Saya sarankan menggunakan daemon like SleepWatcher . Setelah Anda menginstal SleepWatcher (lihat README yang disertakan dengannya), Anda dapat menjalankan perintah seperti berikut.

/usr/local/sbin/sleepwatcher -s /path/to/sleepscript -w /path/to/wakeupscript

Naskah

#!/bin/sh
osascript -e 'quit app "Mail"'

akan keluar dari Mail, dan skripnya

#!/bin/sh
open -a /Applications/Mail.app $1

akan membukanya. Anda dapat menyimpan ini sebagai .sh file dan rujuk dari sleepwatcher, tetapi pastikan Anda menjalankannya chmod +x filename.sh pada mereka sebelum Anda mencoba menjalankannya. Jika tidak, OS X tidak akan mengenalinya sebagai executable.

Sekarang, Anda memiliki dua opsi untuk memuat sleepwatcher: Anda dapat menjalankannya secara manual, Anda dapat mengkonfigurasi LaunchAgent untuk melakukannya. Saya suka yang terakhir, jadi buat file di /Library/LaunchAgents/ bernama com.custom.mailfix.plist (namanya tidak penting, tapi saya sarankan Anda tetap menggunakan format, "com" dan "plist"). Konten file harus menyerupai yang berikut ini.

<?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.custom.mailfix.plist</string>
<key>ProgramArguments</key>
<array>
    <string>/usr/local/sbin/sleepwatcher</string>
    <string></string>
    <string>-s /path/to/sleepscript</string>
    <string>-w /path/to/wakescript</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>

Seperti sebelumnya, ganti jalur skrip dengan jalur ke skrip shell Anda. Untuk memberi tahu OS X untuk meluncurkan agen ini saat startup, jalankan

sudo launchctl load -w /Library/LaunchAgents/com.custom.mailfix.plist
AstroPig7
sumber
lalu apa? bisakah Anda sedikit lebih tepat, bukan hanya tautan.
Buscar웃
1
Saya sudah mengedit jawaban saya untuk lebih spesifik. Maaf soal itu!
AstroPig7