Mac | プログラマティックに電源入り切り part.2
色々あって root の cron で pmset が上手くないので、違うことを考えてみた。
個人メモなので解説などないです。
visudo
ユーザー名は administrator。
pmset は root でないと変更不可。
最終行に入れないとダメという噂もある。
administrator ALL=(ALL) NOPASSWD: /usr/bin/pmset
~/.sleep
root の cron を諦め sleepwatcher で。
#!/bin/bash now=`/opt/homebrew/bin/gdate +%s` task1=`/opt/homebrew/bin/gdate -d "03:00:00" +%s` task2=`/opt/homebrew/bin/gdate -d "09:00:00" +%s` task3=`/opt/homebrew/bin/gdate -d "19:00:00" +%s` if [ $now -lt $task1 ]; then sudo pmset repeat wakeorpoweron MTWRFSU 03:00:00 sleep MTWRFSU 03:10:00 elif [ $now -lt $task2 ]; then sudo pmset repeat wakeorpoweron MTWRFSU 09:00:00 sleep MTWRFSU 09:10:00 elif [ $now -lt $task3 ]; then sudo pmset repeat wakeorpoweron MTWRFSU 19:00:00 sleep MTWRFSU 19:10:00 else sudo pmset repeat wakeorpoweron MTWRFSU 03:00:00 sleep MTWRFSU 03:10:00 fi
回したいタスクは ユーザーの cron に。
gdate
Mac の date はつかえん!
date: illegal option -- d usage: date [-jnRu] [-r seconds|file] [-v[+|-]val[ymwdHMS]] [-I[date | hours | minutes | seconds]] [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
GUN coreutils 入れる。
brew install coreutils
~/.bash_profile に alias してもいいけど。まぁいいや。