Kemungkinan menjalankan skrip saat tidur dan bangun?


48

MacBook Pro 2010 menjalankan OS X Lion.

Apakah mungkin menjalankan skrip pada acara tidur dan bangun?

Aplikasi khusus saya adalah bahwa saya punya volume Truecrypt yang disinkronkan Dropbox yang saya gunakan secara teratur di MacBook dan iMac saya. Saya jarang mematikan MBP saya karena menutup tutupnya jauh lebih cepat dan mudah, tetapi ini berarti saya harus ingat untuk menurunkan volume Truecrypt saya dan membiarkannya disinkronkan kembali sebelum menutup MBP saya. Cukup sepele untuk pemasangan / pembongkaran skrip, tetapi saya ingin melangkah lebih jauh dan menjalankan skrip ini secara otomatis.

Jawaban:


17

Tampaknya saat OS dikirimkan, sleep / wake tidak dapat memicu skrip , tetapi solusi pihak ketiga telah dikembangkan.

Saya tidak punya pengalaman pribadi dengan program ini atau vendor mereka.


2
Skenario sepertinya melakukan apa yang saya cari. Terima kasih!
sh-beta

Saya meminta Skenario memecat applescript yang menembakkan skrip bash dan voilá.
Wangi

Untuk mengakhiri aplikasi cukup ketik ini di jendela AppleScrip baru dan simpan di folder SleepScripts: kirim aplikasi "CodeBox" berhenti end tell
brainray

24

SleepWatcher dapat digunakan.

Dari deskripsi: Ini dapat digunakan untuk menjalankan perintah Unix ketika Mac atau tampilan Mac beralih ke mode tidur atau bangun, setelah waktu tertentu tanpa interaksi pengguna atau ketika pengguna melanjutkan aktivitas setelah istirahat atau ketika daya persediaan notebook Mac terpasang atau terlepas. Itu juga dapat mengirim Mac ke mode tidur atau mengambil waktu sejak aktivitas pengguna terakhir.

Ini bekerja dengan baik untuk saya di 10.6.8. Berbagai versi tersedia untuk mendukung 10.1 (!) Hingga 10.7


Berikut adalah banyak Petunjuk Mac OSX yang menggunakan SleepWatcher.
Studgeek

4
Anda dapat menginstal SleepWatcher oleh Homebrew , mis brew install sleepwatcher. Dan lihat posting ini , ini sangat membantu. Utilitas SleepWatcher juga mendukung OS X El Capitan (10.11).
Rockallite

11

Ini adalah aplikasi saya sendiri, jadi pertimbangkan itu, tetapi ControlPlane memiliki kemampuan untuk melakukan tindakan berdasarkan Sleep / Wake. Anda akan menemukannya di http://www.controlplaneapp.com/ .

ControlPlane adalah cabang dari MarcoPolo dan telah diperbarui untuk dijalankan di Snow Leopard and Lion.


1
Utilitas yang terdengar sangat keren, terlalu banyak hanya untuk ini tetapi jika Anda memiliki kebutuhan untuk memicu lebih dari bangun / tidur maka kedengarannya cukup keren. Saya suka dukungan Growl juga sehingga Anda tahu apa yang dilakukannya. Dan gratis :).
studgeek

2
Harus menjadi jawaban yang diterima karena gratis
Kevin Parker

dapatkah ini digunakan untuk memasang dan melepas drive dengan mode tidur dan bangun? apakah kita perlu menulis skrip automator?
bicepjai

1
bertahun-tahun kemudian, controlplane sekarang tidak dirawat karena penumpukan ketidaksesuaian yang diposting oleh Dustin di blog-nya sehingga dia tidak punya waktu untuk memperbaikinya. Sayang sekali, masuk akal.
lahwran

6

Saya mengembangkan Daemon Peluncuran sederhana berikut untuk memberikan pemicu 'bangun' untuk skrip di Leopard:

<?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>Label</key>
    <string>wake-alert</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/bash</string>
        <string>-c</string>
        <string>z=/tmp/wake; test -s $z || { date > $z; say w; }; 
tail -1 /Library/Logs/DirectoryService/DirectoryService.server.log | grep -v Sleep || > $z
        </string>
    </array>
    <key>WatchPaths</key>
    <array>
        <string>/Library/Logs/DirectoryService/DirectoryService.server.log</string>
    </array>
    <key>ExitTimeOut</key>
    <integer>2</integer>
    <key>ThrottleInterval</key>
    <integer>1</integer>
</dict>
</plist>

Anda dapat mengganti 'say w' dengan kode Anda. Saya menulis tanggal ke z tetapi Anda dapat mengubahnya untuk menulis apa pun. Anda mungkin perlu meningkatkan 'ExitTimeOut' untuk beberapa skrip. Daemon Peluncuran saya berada di /Library/LaunchDaemons/wake-alert.plist

Launch Daemon menonton DirectoryService.server.log dan menulis ke file sementara asalkan file tersebut kosong. File dihapus oleh entri log 'Tidur' dan oleh Shut Down.

Jika Anda menggunakan 'pengalihan pengguna cepat' ke mode tidur, Anda akan menemukan bahwa skrip yang memerlukan pengguna yang masuk akan mencoba berjalan terlalu dini dan gagal kecuali Anda memodifikasi Daemon Peluncuran - mungkin ambil 'Berhasil' dalam 'secure.log'.


1
/Library/Logs/DirectoryService/DirectoryService.server.logtidak ada di High Sierra (10.13).
Sekarang

Mungkin ada log lain yang bisa digunakan.
Neville Hillyer

2

Program lain yang mungkin Anda temukan dan tergoda untuk dicoba adalah EventScripts . Walaupun ini adalah program yang sangat mengesankan yang akan saya rekomendasikan secara umum, setelah mengujinya untuk tujuan ini, TIDAK TIDAK benar-benar dapat memicu skrip dengan cukup cepat untuk dijalankan sebelum Mac Anda tidur, dan sebaliknya skrip tidur akan tidak berjalan sampai setelah Mac terbangun, yang (jelas) mengalahkan tujuannya.

Saya berharap untuk menyelamatkan Anda dan siapa pun yang membaca ini, saat-saat pengujian, saya perlu sampai pada kesimpulan ini. Saya minta maaf harus mengatakan bahwa itu gagal, karena, dalam banyak hal itu adalah program yang dirancang dengan sangat baik dan cukup kuat dan fleksibel. Ini juga cukup murah ($ 3). Performa tingkat rendah sepertinya tidak ada di sana, untuk menjalankan skrip sebelum tidur.

Di sisi lain, dalam tes saya (sejauh ini) sleepwatcher tampaknya cukup andal dan cepat. Ini juga gratis, yang luar biasa. Saya akan terus menguji dan jika ternyata tidak berfungsi kadang-kadang saya akan memperbarui jawaban saya, dan terus menguji opsi lain.

UPDATE Saya belum menemukan sleepwatcher secara konsisten dapat diandalkan sejak awalnya menulis jawaban ini, meskipun awalnya tampaknya berfungsi. Dalam kasus saya, saya tidak perlu menjalankan skrip sewenang-wenang, tetapi sebaliknya hanya mengeluarkan drive eksternal. Saya telah menemukan aplikasi kecil dan murah yang melakukan ini dengan sangat baik sejauh ini: Jettison . Ini dengan sangat cepat menjadi salah satu dari segelintir utilitas yang tidak bisa saya jalani. Jika kebutuhan Anda sama dengan kebutuhan saya, saya pikir Anda akan merasa sepadan dengan beberapa dolar yang mereka tetapkan.


1

WakeWatcher adalah aplikasi latar belakang tanpa wajah OS X sederhana yang saya buat untuk mengatasi masalah ini. Ini berjalan ~/.onwakesetiap kali bangun terdeteksi. Anda kemudian dapat menempatkan perintah untuk me-mount / memasang kembali drive Anda di skrip itu.

WakeWatcher cocok untuk digunakan sebagai item masuk. Ini tidak terlalu canggih, tetapi gratis dan sederhana.

Untuk menjalankan skrip saat tidur akan menjadi tambahan yang sederhana, tapi saya khawatir tentang waktu yang tersedia untuk skrip untuk menyelesaikan sebelum sistem benar-benar tidur. Jika Anda benar-benar membutuhkannya, buka masalah terhadap proyek github dan saya akan menambahkannya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.