วันพฤหัสบดีที่ 18 มิถุนายน พ.ศ. 2563

ให้ Mac Sleep และ ปิดโปรแกรม Remote หรือ VMware

ใน OSX 10.,15 Catalina มีปัญหาบางครั้งใน เวลา Sleep จะ send Power Off ไปที่ VMWare ทำให้ VMWare ที่มี Window ดับ
ต้องสั่ง ให้ VMWare Suspend โดยต้องใช้ โปรแกรม Opensource
SleepWatcher
วิธีติดตั้ง
https://www.macupdate.com/app/mac/10387/sleepwatcher
กรณีนี้ต้อง แก้ที่ /etc/rc.sleep
ใน rc.sleep
#!/bin/bash
date>/tmp/date
/usr/bin/osascript -e 'tell application "VMware Fusion" to quit'

หรือ



  • Install sleepwatcher => brew install sleepwatcher
  • At first create => ~/.wakeup and ~/.sleep scripts and put some shell logic into it
  • Add necessary permissions => chmod 700 ~/.sleep && chmod 700 ~/.wakeup
  • Test it locally => /usr/local/sbin/sleepwatcher --verbose --sleep ~/.sleep - go to sleep with running terminal
  • If it works then load process as launchd agent for all users => /Library/LaunchAgents
  • Add symlink for sleepwatcher launchd task => sudo ln -sfv /usr/local/Cellar/sleepwatcher/2.2/de.bernhard-baehr.sleepwatcher-20compatibility.plist /Library/LaunchAgents/
  • Load launchd task => sudo launchctl load /Library/LaunchAgents/de.bernhard-baehr.sleepwatcher-20compatibility.plist

  • อันนี้ต้องแก้ที่ .sleep ไปดูใน de.bernhard-baehr.sleepwatcher-20compatibility.plist

    Note:
    Update OSX ล่าสุด ทำไม่ได้ จากการใช้ osascript ต้องใช้ utility ของ VMware เอง

    แก้ Code ใน rc.sleep.


    #!/bin/bash
    date>/tmp/date
    /Applications/VMware\ Fusion.app/Contents/Library/vmrun -T fusion suspend <vmware file>

    และ แก้ใน .plist เป็น /etc/rc.sleep ด้วย
    เวลาทดลอง อย่าลืม sudo launchctl unload ..plist เก่าก่อน แล้วค่อย load ตัวใหม่
    ให้ทดลอง sleep ก่อน OSX ใหม่จะถาม Security ว่า Ok หรือไม่ครั้งแรก จะเป็นทุกครั้งที่มี shutdown restart