今更MacのWOLとかsleepとか [Mac]
ThinkPadの場合、リモートからWOLを使って起こすにしてもshutdownするにしても楽なんだけど
Macの場合sleepモードからのWOLにしか対応していない...なんか嫌な感じ...
とは言えリモートからの操作はやっぱ楽なので、超手抜きな設定など
基本は全てThinkPad T60から操作する。
<Mac本体設定>
1. 「システム環境設定」→「省エネルギー」→
「Ethernet ネットワークアクセスによってスリープ解除」にチェックを入れる。
2. 「システム環境設定」→「共有」→「サービス」の「リモートログイン」に
チェックを入れる。
<WOL>
WOL.exeをbatファイルに組み込むとか、GuiWakeOnLanなんかをThinkPad T60に突っ込んで
そこからWOLパケットを投げてMacを起こす。
<sleep>
1. Mac にシェル・スクリプトを2本配置
(1) Macをsleepさせるスクリプト本体
(2) (1)のスクリプトをnohupかつバックグラウンドでキックして速攻終了するスクリプト
(3)実行権とか
2. sudo パスワードなし実行設定
上記のスクリプトをsudoコマンドパスワードなしで
root権実行(※1)させるためsudo設定ファイルに以下を追加
※1 sleepさせようとするMacに一般ユーザーがGUIログインしていない(Login画面の状態)
まはた他のユーザーがGUIログインしている場合に、sleepさせるにはrootで実行する
必要がある。
3. Teratermマクロの設定
ThinkPad T60からssh2でMacに対して一般ユーザ
(/etc/sudoersに登録したユーザ:例ではhogeuser)でloginし、
マクロ内からsudoして/usr/local/sbin/syssleepをキックする。
以下のマクロは最初だけユーザー名、とパスワードを聞かれ、2回目以降は聞かれない。
(暗号化されてファイルに保持される。)
4. Teratermマクロ実行(sleep実行)
これで、ようやくMacがsleepします。
がぁ、Mac設定「セキュリティ設定」→「一般」の
「スリープの後、またはスクリーンセーバが開始した後XXXXパスワード要求」に
チェックが入っていて、Macにパスワードロックがかかった状態の場合は
どう頑張ってもsleepしませんでした。
Macの場合sleepモードからのWOLにしか対応していない...なんか嫌な感じ...
とは言えリモートからの操作はやっぱ楽なので、超手抜きな設定など
基本は全てThinkPad T60から操作する。
<Mac本体設定>
1. 「システム環境設定」→「省エネルギー」→
「Ethernet ネットワークアクセスによってスリープ解除」にチェックを入れる。
2. 「システム環境設定」→「共有」→「サービス」の「リモートログイン」に
チェックを入れる。
<WOL>
WOL.exeをbatファイルに組み込むとか、GuiWakeOnLanなんかをThinkPad T60に突っ込んで
そこからWOLパケットを投げてMacを起こす。
<sleep>
1. Mac にシェル・スクリプトを2本配置
(1) Macをsleepさせるスクリプト本体
/usr/local/sbin/ssleep
#!/bin/ksh
sleep 5
osascript -e 'tell application "System Events"' -e 'sleep' -e 'end tell'
(2) (1)のスクリプトをnohupかつバックグラウンドでキックして速攻終了するスクリプト
/usr/local/sbin/syssleep
#!/bin/ksh
nohup /usr/local/sbin/ssleep >/dev/null 2>&1 &
exit
(3)実行権とか
# cd /usr/local/sbin
# chmod 755 ssleep syssleep
2. sudo パスワードなし実行設定
上記のスクリプトをsudoコマンドパスワードなしで
root権実行(※1)させるためsudo設定ファイルに以下を追加
/etc/sudoers
hogeuser ALL=(ALL) NOPASSWD: /usr/local/sbin/syssleep
※1 sleepさせようとするMacに一般ユーザーがGUIログインしていない(Login画面の状態)
まはた他のユーザーがGUIログインしている場合に、sleepさせるにはrootで実行する
必要がある。
3. Teratermマクロの設定
ThinkPad T60からssh2でMacに対して一般ユーザ
(/etc/sudoersに登録したユーザ:例ではhogeuser)でloginし、
マクロ内からsudoして/usr/local/sbin/syssleepをキックする。
以下のマクロは最初だけユーザー名、とパスワードを聞かれ、2回目以降は聞かれない。
(暗号化されてファイルに保持される。)
sleep Mac.ttl
show 0
hostname = '192.168.1.233'
getpassword 'C:\Program Files\teraterm\myserver.dat' 'UserName' myname
getpassword 'C:\Program Files\teraterm\myserver.dat' 'Password' mypassword
conn_str = hostname
strconcat conn_str ':22 /ssh /2 /auth=password /user='
strconcat conn_str myname
strconcat conn_str ' /passwd='
strconcat conn_str mypassword
connect conn_str
wait '@MBP'
sendln 'sudo /usr/local/sbin/syssleep'
sendln 'sleep 2'
sendln 'exit'
4. Teratermマクロ実行(sleep実行)
"C:\Program Files\teraterm\ttpmacro.exe" "C:\ctrl\sleep Mac.ttl"
これで、ようやくMacがsleepします。
がぁ、Mac設定「セキュリティ設定」→「一般」の
「スリープの後、またはスクリーンセーバが開始した後XXXXパスワード要求」に
チェックが入っていて、Macにパスワードロックがかかった状態の場合は
どう頑張ってもsleepしませんでした。
コメント 0