サーバーがない場合の対応
SynergyサーバーとなるWindowsマシンよりiMacの立ち上がり速度が断然速いので、出社してマシンの電源を入れるとsynergyしない。
サーバーIP直指定の場合はsynergycが定期的にリトライしてつながるまで頑張るが、1/10に書いた、nmbaddressコマンドを使うと引数の指定がないことになるのでsynergycが起動失敗する…ということが、その原因。というわけでログイン項目のスクリプトを以下のように修正。
SynergycStart
do shell script "/usr/local/bin/kick_synergyc > ~/log/synergyc.log 2>&1 &"
kick_synergyc
#!/bin/sh while [ "" == "`/usr/local/bin/nmaddress Winのコンピュータ名`" ] do echo " Winのコンピュータ名 not found. this program do retry at 20 seconds after." sleep 20 done /usr/local/bin/synergyc -f `/usr/local/bin/nmaddress Winのコンピュータ名`
しかしなんだか煩雑。AppleScript使う意味があるのだろうか。というかLogoutHookを使っているのに対になるものがLoginHookじゃないのも気持ち悪いので、アカウントのログイン項目から設定するのをやめることにする。
LoginHookはこの辺にやり方があり、LogoutHookの時と要領が同じなので問題なくいけそう。
追記
LoginHookもOKだったが1点注意が必要だった。ユーザアカウントではなくrootで実行されるようで、$HOME/.loginHookというような感じでユーザー別にシェルファイルを用意することはできなかった。
ま、以下のような説明もあるので想像はつくが。
(where /path/to/script is the full path to the script that you want to execute when a user logs in).