Có thể chạy các kịch bản trên giấc ngủ và thức dậy?


48

MacBook Pro 2010 chạy OS X Lion.

Có thể chạy các kịch bản trên các sự kiện ngủ và thức?

Ứng dụng cụ thể của tôi là tôi đã có khối lượng Truecrypt được đồng bộ hóa Dropbox mà tôi thường xuyên sử dụng trên cả MacBook và iMac. Tôi hiếm khi tắt MBP vì việc đóng nắp nhanh hơn và dễ dàng hơn nhiều, nhưng điều này có nghĩa là tôi phải nhớ tháo các khối lượng Truecrypt của mình và để chúng đồng bộ hóa lại trước khi đóng MBP. Nó đủ tầm thường để gắn / tháo tập lệnh, nhưng tôi muốn tiến thêm một bước và để các tập lệnh này tự động chạy.

Câu trả lời:


17

Có vẻ như khi các hệ điều hành xuất hiện, chế độ ngủ / thức không thể kích hoạt các tập lệnh , nhưng các giải pháp của bên thứ ba đã được phát triển.

Tôi không có kinh nghiệm cá nhân với các chương trình này hoặc nhà cung cấp của họ.


2
Kịch bản dường như làm những gì tôi đang tìm kiếm. Cảm ơn!
sh-beta

Tôi đã có Kịch bản khai hỏa bản thảo phát ra một kịch bản bash và voilá.
hương thơm

Để kết thúc một ứng dụng, chỉ cần gõ ứng dụng này trong cửa sổ AppleScrip mới và lưu nó vào thư mục SleepScripts: nói với ứng dụng "CodeBox" thoát kết thúc
brainray

24

SleepWatcher có thể được sử dụng.

Từ mô tả: Nó có thể được sử dụng để thực thi lệnh Unix khi Mac hoặc màn hình của Mac chuyển sang chế độ ngủ hoặc thức dậy, sau một thời gian nhất định mà không có sự tương tác của người dùng hoặc khi người dùng tiếp tục hoạt động sau khi nghỉ hoặc khi mất điện cung cấp một máy tính xách tay Mac được đính kèm hoặc tách ra. Nó cũng có thể gửi Mac sang chế độ ngủ hoặc lấy lại thời gian kể từ hoạt động của người dùng cuối cùng.

Nó hoạt động tốt với tôi vào ngày 10.6.8. Các phiên bản khác nhau có sẵn để hỗ trợ 10.1 (!) Đến 10.7


Dưới đây là một loạt các gợi ý về Mac OSX sử dụng SleepWatcher.
studgeek

4
Bạn có thể cài đặt SleepWatcher bằng Homebrew , vd brew install sleepwatcher. Và xem bài này , nó rất hữu ích. Tiện ích SleepWatcher cũng hỗ trợ OS X El Capitan (10.11).
Rockallite

11

Đây là ứng dụng của riêng tôi, vì vậy hãy xem xét điều đó, nhưng ControlPlane có khả năng thực hiện các hành động dựa trên chế độ Ngủ / Thức. Bạn sẽ tìm thấy nó tại http: //www.controlplan Ứng dụng.com / .

ControlPlane là một nhánh của MarcoPolo và đã được cập nhật để chạy trên Snow Leopard và Lion.


1
Tiện ích âm thanh rất hay, quá mức cần thiết cho việc này nhưng nếu bạn có nhu cầu kích hoạt nhiều hơn là thức / ngủ thì nghe có vẻ khá tuyệt. Tôi cũng thích hỗ trợ Growl để bạn biết nó đang làm gì. Và nó miễn phí :).
studgeek

2
Nên là câu trả lời được chấp nhận vì nó miễn phí
Kevin Parker

cái này có thể được sử dụng để gắn và ngắt kết nối ổ đĩa với giấc ngủ và thức không? chúng ta có cần viết kịch bản tự động hóa không?
bicepjai

1
Nhiều năm sau, máy bay điều khiển hiện không được biết đến do sự không tương thích mà Dustin đã đăng trên blog của mình mà anh không có thời gian để sửa chữa. Quá xấu, có ý nghĩa mặc dù.
lahwran

6

Tôi đã phát triển Launch Daemon đơn giản sau đây để cung cấp trình kích hoạt 'đánh thức' cho các tập lệnh trên 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>

Bạn có thể thay thế 'say w' bằng mã của mình. Tôi viết một ngày thành z nhưng bạn có thể thay đổi điều này để viết bất cứ điều gì. Bạn có thể cần tăng 'ExitTimeOut' cho một số tập lệnh. Daemon Launch của tôi cư trú tại / L Library / LaunchDaemons / wake-alert.plist

Launch Daemon xem DirectoryService.server.log và ghi vào một tệp tạm thời với điều kiện là tệp trống. Tập tin sẽ bị xóa bởi một mục nhật ký 'Ngủ' và Tắt máy.

Nếu bạn sử dụng 'chuyển đổi người dùng nhanh' sang chế độ ngủ, bạn sẽ thấy rằng các tập lệnh yêu cầu người dùng đã đăng nhập sẽ cố chạy quá sớm và không thành công trừ khi bạn sửa đổi Launch Daemon - có lẽ là grep 'Succeeded' in 'safe.log'.


1
/Library/Logs/DirectoryService/DirectoryService.server.logkhông tồn tại ở High Sierra (10.13).
Nowaker

Có lẽ có những bản ghi khác có thể được sử dụng.
Neville Hillyer

2

Một chương trình khác mà bạn có thể khám phá và muốn thử là EventScripts . Mặc dù đây là một chương trình rất ấn tượng mà tôi muốn giới thiệu, nhưng sau khi thử nghiệm nó cho mục đích này, nó thực sự KHÔNG có khả năng kích hoạt các tập lệnh đủ nhanh để chúng chạy trước khi máy Mac của bạn đi ngủ, và thay vào đó, kịch bản ngủ sẽ không chạy cho đến khi Mac thức dậy, điều này (rõ ràng) đánh bại mục đích.

Tôi hy vọng sẽ cứu bạn và bất cứ ai khác đọc điều này trong những giờ thử nghiệm, tôi phải đi đến kết luận này. Tôi rất tiếc phải nói rằng nó đã thất bại, tuy nhiên, bởi vì trong rất nhiều khía cạnh, nó là một chương trình thực sự được thiết kế độc đáo và khá mạnh mẽ và linh hoạt. Nó cũng khá rẻ ($ 3). Tuy nhiên, hiệu suất cấp thấp dường như không có ở đó để chạy tập lệnh trước khi ngủ.

Mặt khác, trong các thử nghiệm của tôi (cho đến nay), người theo dõi giấc ngủ dường như khá đáng tin cậy và nhanh chóng. Nó cũng miễn phí, thật tuyệt vời. Tôi sẽ tiếp tục thử nghiệm và nếu tôi thấy nó không hoạt động đôi khi tôi sẽ cập nhật câu trả lời của mình và tiếp tục thử nghiệm các tùy chọn khác.

CẬP NHẬT Tôi không thấy người theo dõi giấc ngủ luôn đáng tin cậy kể từ khi viết câu trả lời này, mặc dù ban đầu nó có vẻ như đang hoạt động. Trong trường hợp của tôi, tôi không cần phải chạy các tập lệnh tùy ý, mà thay vào đó chỉ cần đẩy các ổ đĩa ngoài. Tôi đã tìm thấy một ứng dụng nhỏ và rẻ tiền thực hiện điều này rất tốt cho đến nay: Jettison . Điều này đã nhanh chóng trở thành một trong số ít các tiện ích mà tôi không thể sống thiếu. Nếu nhu cầu của bạn giống như của tôi, tôi nghĩ bạn sẽ thấy nó xứng đáng với vài đô la họ tính phí.


1

WakeWatcher là một ứng dụng nền đơn giản OS X đơn giản mà tôi đã tạo để giải quyết vấn đề này. Nó chạy ~/.onwakebất cứ khi nào thức dậy được phát hiện. Sau đó, bạn có thể đặt các lệnh để gắn kết / kết nối các ổ đĩa của mình trong tập lệnh đó.

WakeWatcher phù hợp để sử dụng làm mục đăng nhập. Nó không phải là rất phức tạp, nhưng nó là miễn phí và đơn giản.

Để thực thi các tập lệnh khi ngủ sẽ là một bổ sung đơn giản, nhưng tôi lo ngại về thời gian có sẵn để các tập lệnh hoàn thành trước khi hệ thống thực sự ngủ. Nếu bạn thực sự cần nó, hãy mở một vấn đề chống lại dự án github và tôi sẽ thêm nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.