เป็นไปได้ที่จะเรียกใช้สคริปต์ในโหมดสลีปและปลุก?


48

MacBook Pro 2010 ที่ใช้ OS X Lion

เป็นไปได้หรือไม่ที่จะเรียกใช้สคริปต์เกี่ยวกับเหตุการณ์การพักและตื่น

แอปพลิเคชันเฉพาะของฉันคือฉันมี Truecrypt ที่ซิงค์กับวอลุ่ม Dropbox ที่ฉันใช้เป็นประจำทั้งใน MacBook และ iMac ของฉัน ฉันไม่ค่อยปิด MBP ของฉันเนื่องจากการปิดฝาเร็วกว่าและง่ายกว่ามาก แต่นี่หมายความว่าฉันต้องจำที่จะยกเลิกการปิดวอลลุ่ม Truecrypt ของฉันและให้พวกเขาซิงค์ก่อนที่จะปิด MBP ของฉัน มันเป็นเรื่องเล็กน้อยพอที่จะติดตั้ง / ถอดสคริปต์ของสคริปต์ได้ แต่ฉันต้องการดำเนินการต่อไปและให้สคริปต์เหล่านี้ทำงานโดยอัตโนมัติ

คำตอบ:


17

ปรากฏว่าในขณะที่ระบบปฏิบัติการจัดส่งสลีป/ ปลุกไม่สามารถทริกเกอร์สคริปต์ได้ แต่โซลูชันของบุคคลที่สามได้รับการพัฒนา

ฉันไม่มีประสบการณ์ส่วนตัวกับโปรแกรมเหล่านี้หรือผู้ขายของพวกเขา


2
สถานการณ์ดูเหมือนว่าจะทำสิ่งที่ฉันกำลังมองหา ขอบคุณ!
sh-beta

ฉันใช้ Scenario ยิง applescript ซึ่งดับ bash script และvoilá
redolent

หากต้องการสิ้นสุดแอปพลิเคชันให้พิมพ์สิ่งนี้ในหน้าต่าง AppleScrip ใหม่และบันทึกไว้ในโฟลเดอร์ SleepScripts: บอกแอปพลิเคชัน "CodeBox" ออกจากบอกเลิกบอก
brainray

24

อาจใช้SleepWatcher

จากคำอธิบาย: มันสามารถใช้เพื่อดำเนินการคำสั่ง Unix เมื่อ Mac หรือการแสดงของ Mac ไปที่โหมดสลีปหรือตื่นขึ้นหลังจากเวลาที่กำหนดโดยไม่ต้องมีการโต้ตอบกับผู้ใช้หรือเมื่อผู้ใช้ดำเนินกิจกรรมหลังจากหยุดหรือเมื่อพลังงาน อุปทานของโน้ตบุ๊ค Mac นั้นต่ออยู่หรือแยกออก นอกจากนี้ยังสามารถส่ง Mac ไปยังโหมดสลีปหรือดึงเวลาตั้งแต่กิจกรรมผู้ใช้ล่าสุด

มันใช้งานได้ดีสำหรับฉันที่ 10.6.8 มีหลายเวอร์ชั่นรองรับ 10.1 (!) ถึง 10.7


นี่คือพวงของMac OSX Hintsที่ใช้ SleepWatcher
studgeek

4
คุณสามารถติดตั้ง SleepWatcher โดยHomebrewbrew install sleepwatcherเช่น และดูโพสต์นี้มันมีประโยชน์มาก ยูทิลิตี้ SleepWatcher รองรับ OS X El Capitan (10.11)
Rockallite

11

นี่เป็นแอพของฉันเองดังนั้นให้พิจารณาด้วยว่า แต่ ControlPlane มีความสามารถในการดำเนินการตาม Sleep / Wake คุณจะพบว่าที่http://www.controlplaneapp.com/

ControlPlane เป็นส่วนหนึ่งของ MarcoPolo และได้รับการปรับปรุงให้ทำงานบน Snow Leopard และ Lion


1
ยูทิลิตี้ที่ทำให้เกิดเสียงที่ยอดเยี่ยมมากมันเกินความจริงสำหรับเรื่องนี้ แต่ถ้าคุณมีความต้องการที่จะกระตุ้นมากกว่าการปลุก / การนอนหลับ ฉันชอบการสนับสนุนคำรามด้วยดังนั้นคุณจึงรู้ว่ามันกำลังทำอะไรอยู่ และมันฟรี :)
studgeek

2
ควรเป็นคำตอบที่ยอมรับเพราะฟรี
Kevin Parker

สามารถใช้สำหรับการติดตั้งและยกเลิกการต่อเชื่อมไดรฟ์ด้วยโหมดสลีปและตื่นได้หรือไม่ เราจำเป็นต้องเขียนสคริปต์อัตโนมัติหรือไม่
bicepjai

1
หลายปีต่อมาตอนนี้เครื่องบินควบคุมไม่ได้ถูกทำลายเนื่องจากความไม่ลงรอยกันที่ดัสตินโพสต์ไว้ในบล็อกของเขาซึ่งเขาไม่มีเวลาแก้ไข เลวร้ายเกินไปทำให้รู้สึกว่า
lahwran

6

ฉันพัฒนา Launch Daemon อย่างง่าย ๆ ต่อไปนี้เพื่อให้ทริกเกอร์ 'wake' สำหรับสคริปต์บน 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>

คุณสามารถแทนที่ 'say w' ด้วยรหัสของคุณ ฉันเขียนวันที่เป็น z แต่คุณสามารถเปลี่ยนสิ่งนี้เพื่อเขียนอะไรก็ได้ คุณอาจต้องเพิ่ม 'ExitTimeOut' สำหรับสคริปต์บางตัว Daemon เปิดใช้ของฉันอยู่ที่ /Library/LaunchDaemons/wake-alert.plist

Launch Daemon เฝ้าดู DirectoryService.server.log และเขียนลงในไฟล์ชั่วคราวหากไฟล์นั้นว่างเปล่า ไฟล์จะถูกล้างโดยรายการบันทึก 'สลีป' และโดยปิดระบบ

หากคุณใช้ 'การสลับผู้ใช้อย่างเร็ว' เพื่อเข้าสู่โหมดสลีปคุณจะพบว่าสคริปต์ที่ต้องใช้ผู้ใช้ที่เข้าสู่ระบบจะพยายามเรียกใช้เร็วเกินไปและล้มเหลวเว้นแต่คุณจะแก้ไข Launch Daemon - บางที grep


1
/Library/Logs/DirectoryService/DirectoryService.server.logไม่มีใน High Sierra (10.13)
Nowaker

อาจมีบันทึกอื่น ๆ ที่สามารถใช้ได้
Neville Hillyer

2

โปรแกรมที่คุณอาจค้นพบและถูกล่อลวงไปลองก็คือEventScripts แม้ว่ามันจะเป็นโปรแกรมที่น่าประทับใจมากที่ผมจะแนะนำโดยทั่วไปหลังจากการทดสอบก็เพื่อการนี้มันไม่ไม่จริงปรากฏขึ้นเพื่อให้สามารถสคริปต์ทริกเกอร์ได้อย่างรวดเร็วพอสำหรับพวกเขาทำงานก่อน Mac ของคุณไปที่การนอนหลับและแทนที่จะสคริปต์การนอนหลับจะ ไม่ทำงานจนกว่าหลังจากที่ Mac ได้ตื่นขึ้นมาซึ่งเห็นได้ชัดว่าเอาชนะวัตถุประสงค์

ฉันหวังว่าจะช่วยคุณและทุกคนที่อ่านบทความนี้ในช่วงเวลาของการทดสอบซึ่งทำให้ฉันได้ข้อสรุปนี้ ฉันขอโทษที่ต้องบอกว่ามันล้มเหลวอย่างไรก็ตามเนื่องจากในหลาย ๆ ด้านมันเป็นโปรแกรมที่ออกแบบมาอย่างดีและมีประสิทธิภาพและยืดหยุ่น นอกจากนี้ยังมีราคาไม่แพงมาก ($ 3) ดูเหมือนว่าประสิทธิภาพในระดับต่ำจะไม่อยู่ที่นั่นสำหรับการเรียกใช้สคริปต์ก่อนเข้านอน

ในขณะที่การทดสอบของฉัน (จนถึง) sleepwatcherดูเหมือนจะค่อนข้างเชื่อถือได้และรวดเร็ว นอกจากนี้ยังฟรีซึ่งยอดเยี่ยมมาก ฉันจะทำการทดสอบต่อไปและหากฉันพบว่ามันไม่ทำงานบางครั้งฉันจะอัปเดตคำตอบของฉันและทำการทดสอบตัวเลือกอื่น ๆ

อัปเดตฉันไม่พบ sleepwatcher ว่าเชื่อถือได้อย่างต่อเนื่องตั้งแต่แรกเริ่มเขียนคำตอบนี้แม้ว่าตอนแรกดูเหมือนว่าจะใช้งานได้ ในกรณีของฉันฉันไม่จำเป็นต้องเรียกใช้สคริปต์โดยพลการ แต่เพียงนำไดรฟ์ภายนอกออก ฉันได้พบ app ขนาดเล็กและราคาไม่แพงที่ไม่นี้เป็นอย่างดีเพื่อให้ห่างไกล:โยนทิ้ง สิ่งนี้กลายเป็นหนึ่งในสาธารณูปโภคเล็กน้อยที่ฉันขาดไม่ได้ หากความต้องการของคุณเหมือนกับของฉันฉันคิดว่าคุณจะพบว่ามันคุ้มค่ากับเงินสองสามเหรียญที่พวกเขาคิด


1

WakeWatcherเป็นแอปพลิเคชั่นแบ็คกราวด์ OS X แบบง่ายที่ฉันสร้างขึ้นเพื่อแก้ไขปัญหานี้ มันจะทำงาน~/.onwakeทุกครั้งที่ตรวจพบการปลุก จากนั้นคุณสามารถใส่คำสั่งเพื่อเชื่อมต่อ / ติดตั้งไดรฟ์ของคุณใหม่ในสคริปต์นั้น

WakeWatcher เหมาะสำหรับใช้เป็นรายการเข้าสู่ระบบ มันไม่ซับซ้อนมาก แต่มันฟรีและเรียบง่าย

ในการเรียกใช้งานสคริปต์ในโหมดสลีปจะเป็นการเพิ่มอย่างง่าย แต่ฉันกังวลเกี่ยวกับเวลาที่สคริปต์จะทำงานให้เสร็จก่อนที่ระบบจะเข้าสู่โหมดสลีป หากคุณต้องการจริงๆให้เปิดปัญหากับโปรเจ็กต์ Github และฉันจะเพิ่มเข้าไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.