ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

macOSからサスペンド中の録画サーバをリモートで起こしつつリモートデスクトップクライアントを起動すると快適

   

Wake on lan and launch remote desktop client 000jpg

起動ディスクがおかしくなって起動しなくなり、長きにわたって放置していた録画サーバを復活させてみました。

やはり録画サーバはいい!

チューナーカード、アースソフトのPT3が生産中止になり後継が出ていませんが、バカ高いプレミアム価格で掴まされるAmazonやヤフオクに頼らずとも、最近はメルカリに行けば25,000円ぐらいで購入できるのでありがたいです。

Wake on lan and launch remote desktop client 001

いわば、メルカリは全部の出品に即決価格が設定されているヤフオクのようなもの。

悪い先入観からまだメルカリを使っていない方も、一度覗いてみてください

録画サーバに関する小技を紹介

そんなわけで録画サーバのある生活に戻りつつあるのですが、少し工夫を施したのでご紹介。

拙宅では居間に録画サーバを設置し、自室には普段使いのMacがあります。

録画サーバは普段サスペンド状態。

録画時間になるとサスペンドから自動的に起きて、録画が終わるとまたサスペンドに戻るといった省エネ設定で録画サーバを稼働させているのですが、録画をネットワーク越しにMacから見ようとしても、録画サーバは普段サスペンドしているのでつながらない。

Wake on lan and launch remote desktop client 002

居間まで歩いていって録画サーバの電源ボタンを押し、サスペンドから起こした後にMacでリモートデスクトップクライアントを起動して作業、といった感じでやっていたのですが、いかにも面倒。

それを何とかするために少し工夫。

  1. Wake-on-LANのマジックパケットを飛ばし、録画サーバをサスペンドから復帰
  2. 録画サーバが応答するまで待つ
  3. リモートデスクトップクライアントを起動する

これをワンアクションで実行できる設定を施したので紹介します。

設定方法

Wake-on-LANを飛ばすコマンドを用意

まずはWake-on-LANのマジックパケットを飛ばす手段を用意しました。
こちらのPerlスクリプト、wakeonlanを利用。

上記URLのものをダウンロードして、実行権を付与。Safariでダウンロードする場合は、Command+Sで保存ダイアログを出し、フォーマットを「ページのソース」に指定。強制的に拡張子.txtが付いてしまうので、それを削除。

「/アプリケーション/ユーティリティ/」にあるターミナルで以下のように実行し、実行権を付与します。

cd /Users/<※ユーザー名>/Dropbox/bin<Enterキーを押す>
chmod +x wakeonlan<Enterキーを押す>

※自分の環境に応じて変わる

記事では、Dropbox内に作ったbinというディレクトリにwakeonlanコマンドをコピーしたことを前提にします。

録画サーバのMACアドレスを調査

Wake-on-LANのマジックパケットを飛ばすには、録画サーバのMACアドレスを調べねばなりません。

録画サーバで「Win+R」→「cmd.exe」と入力して出てきたcmd.exeを起動し、ipconfig /allを実行。表示されたものの中から、利用しているイーサネット アダプターの「物理アドレス」(MACアドレス)を控えます。

Wake on lan and launch remote desktop client 003

wakeonlanコマンドのテスト

wakeonlanコマンドの引数に調べたMACアドレスを与えて、前出のターミナルで録画サーバがサスペンドから復帰するかテストします。

/Users/<※ユーザー名>/Dropbox/bin/wakeonlan <※調べたMACアドレス><Enterキーを押す>

※自分の環境に応じて変わる

AppleScriptの利用

  1. 用意したwakeonlanコマンドで録画サーバをサスペンドから起こす
  2. 録画サーバがネットワーク接続を確立するまで適当な秒数待つ
  3. リモートデスクトップクライアントを起動する

という複数の動作を連続的に実行するためにAppleScriptを利用します。

具体的には、以下のような内容になります。

do shell script "/Users/<※ユーザー名>/Dropbox/bin/wakeonlan <※調べたMACアドレス>"
delay 8
tell application "Splashtop Personal" to launch

※自分の環境に応じて変わる

解説:

  • 1行目: wakeonlanコマンドの引数に調べたMACアドレスを与えつつ実行
    • AppleScriptの中ではパスが通っていないので、wakeonlanコマンドまでのフルパスを指定する必要があります
  • 2行目: 8秒待つ
    • delayというコマンドで指定秒数待機ができます。環境によって秒数を長くしたり短くしたり調整
  • 3行目: リモートデスクトップクライアントを実行
    • 引数にアプリケーション名を与えます。僕はSplashtop Personalを使っています。指定するアプリケーション名は、アプリケーションアイコンの名前でOK

これを「/アプリケーション/ユーティリティ/」にあるスクリプトエディタで新規作成。アプリケーションとして保存。僕はrokugaserverという名前にして、「/アプリケーション/」に入れてあります。

Wake on lan and launch remote desktop client 004

このAppleScriptを実行すると、一連の動作が実行されます。

作ったAppleScriptにサーバのアイコンなどを貼り、Dockなどに登録するといいでしょう。

僕はLaunchBarというアプリを使っており、いついかなる状況でも「アクティベートキー(うちではCtrl+Tab)→rokuga→<Enter>」とキーボードを打つと起動できるようになっています。

地味に大変便利

リモートデスクトップクライアントによっては、Wake-on-LANでサーバを起こす機能があるものもあると思いますが、自分の使っているSplashtop PersonalのPC用クライアントにはその機能がないので、このような工夫をしてみました。

何でもないことですが、この一連の操作がワンアクションでできると、かなり気持ちがいい。

ぜひ設定してみてください。(←いや、対象者何人いるんだよ)

 - DTV