スリープ復帰後に共有フォルダの接続が切れてしまいます
Windowsマシンに共有フォルダを作成し、ファイルサーバとして使っています。
共有フォルダをマウントした状態でスリープに入り、復帰するとマウントした共有フォルダのアイコンが消えています。
スリープ復帰のたびに毎回接続し直すのも面倒なので、接続した状態のまま保つ方法、またはスリープ復帰後に自動的に接続する方法、のどちらかをご存知の方ご教授いただけませんでしょうか?
Windowsマシンに共有フォルダを作成し、ファイルサーバとして使っています。
共有フォルダをマウントした状態でスリープに入り、復帰するとマウントした共有フォルダのアイコンが消えています。
スリープ復帰のたびに毎回接続し直すのも面倒なので、接続した状態のまま保つ方法、またはスリープ復帰後に自動的に接続する方法、のどちらかをご存知の方ご教授いただけませんでしょうか?
スリープすれば、ネットワーク接続は切れますので、ネットワーク越しにマウントしているボリュームやフォルダーなどの接続も切れます。しかし、マック同士のファイル共有なら、また自動的に(使うときに)接続されるのですが。
Windows 側に bonjour をインストールしておくとどうですか?
どうしてもダメなら、
サーバを自動的にマウントする
などの方法で作ったスクリプトを用意しておけば、それをクリックするだけで再接続は出来ます。
はに さん、ありがとうございます。
リンク先がこのトピックになっていたので教えていただいた情報には辿り着けませんでしたが、とあるページにマウントするためのスクリプトが載っていたので、それを見ながら自分の環境に合わせ作成することができました。
復帰後自動でマウントできれば最高なんですけど、この方法もなかなかいいかもです。Finderから辿って接続するより早いしスマートです。
ありがとうございました。
>復帰後自動でマウントできれば最高
自分で試したことは無いですが、SleepWatcherで出来ると思います。
Y. Kawabe さん
SleepWatcherの情報ありがとうございます。
早速試しましたがうまく動きません。。
インストール後スクリプトを書いて(といっても"Open 〜"だけの簡単なものですが)、chmodして再起動したのですが、スリープ後に再接続しにいきませんでした。
スクリプト自体はコンソール直打ちで動作する位の簡単なものなんですが。。
いろいろ試してみます。ありがとうございました。
私も単純なスクリプトで試してみましたが、.wakeup自体はちゃんと起動されます。
・sleepwatcherは起動されていますか?(アクティビティモニタあるいはpsコマンドでチェック)
・単純に「$HOME/.wakeup」をコマンドとしてたたくと、動作しますか?
・$HOME/.wakeupをもっと単純なスクリプトにしたらどうですか?(私は「touch aaa」だけにしてテストしました。)
・system.logに動作履歴が残るはずですが、ありますか?
> リンク先がこのトピックになっていた...
あっ、失礼しました。後に見る人のために、もう一度張り直しておきます。
http://homepage.mac.com/nojiri/macosx/tips_share.html%23automount
問題におつき合いいただきありがとうございます。
>・sleepwatcherは起動されていますか?(アクティビティモニタあるいはpsコマンドでチェック)
→起動しているようです(プロセスの一覧にありました)
>・単純に「$HOME/.wakeup」をコマンドとしてたたくと、動作しますか?
→"No such file or directory"となってしまいます(これが原因でしょうか?)。lsしても".wakeup"は表示されません。
あと、エディタが悪いのかと思って(最初の質問時に使用していたのはmiです)、
ターミナル上からviで書いてみましたが結果は同じでした。
>・$HOME/.wakeupをもっと単純なスクリプトにしたらどうですか?(私は「touch aaa」だけにしてテストしました。)
→同じように、".wakeup"の内容を”touch aaa”としてみましたが上記の通り(No Such file or...)なので確認できませんでした。
>・system.logに動作履歴が残るはずですが、ありますか?
→ぱっと見で見当たりませんでした。 (ログの内容を”sleep”や".wakeup"で検索しました)
こちらで実施した手順は以下のとおりです。
1.sleepwatcherとsleepwatcher startupitemをインストール
2.mi(vi)で”.wakeup”を以下のように編集
---
open /Users/<ユーザー>/documents/test.app
---
test.appは、AppleScriptでサーバの共有フォルダをマウントする記述をアプリケーション形式で保存したものです。
3."chmod +x /Users/<ユーザー>/.wakeup"で実行権限を付与
4.OSを再起動し、ログオン後スリープ動作を実行する
5.スリープから復帰し、スクリプトが動作したか確認する
>"No such file or directory"となってしまいます(これが原因でしょうか?)。lsしても".wakeup"は表示されません。
「.」で始まるファイル名は、UNIXでは隠しファイル扱いなので「ls」だけでは見えません。「ls -al」でアクセス権も含めてチェックしてください。少なくとも$HOMEに.wakeupができていないことには話になりません。どうも、ホームディレクトリ以外の場所に作ってしまったんじゃないかと思いますが。
カレントがhomeの状態から"ls -al"してみると".wakeup"が表示されていました。
アクセス権は"-rwxr-xr-x"なので問題ないと思います。
スリープから復帰してみると、$homeにaaaファイルが作成されていました。
ので、Sleepwatcher自体が動作していることがわかりました!
今まで動作していなかった原因は不明ですが。。
早速".wakeup"に以下の記述をしました。
---
open /Users/<ユーザ名>/test.app
---
スリープ復帰後、test.appが起動しました!
が、エラー36が発生してフォルダはマウントされませんでした。
手動でtest.appを起動した場合は問題ないのですが。。
test.appのアクセス権は"drwxr-xr-x"なので問題ないはずです。
AppleScriptのエラーコードをスクリプトエディタやGoogleで探してみましたがそれらしい文献はありませんでした。
目的までもうちょっとなのにくやしいです。
サーバのマウント操作などの場合、ネットワークがすぐに復帰しないことも考慮し、ちょっとウェイトを入れてからの方が良いみたいです。openの前に「sleep 5」とかを入れてみたらどうでしょう?(5秒が適切かどうかはわかりませんが。)
".wakeup"にsleep 2を書き足すことで正常に動作するようになりました!
ありがとうございます!
ただ、マウントした状態でスリープし復帰すると共有フォルダはマウントされている状態(ただしアイコンをクリックするか時間が経つと消える)なので、このままではエラー55が発生してしまいました。
上記を改善するために、AppleScriptで共有フォルダが存在する場合はアンマウントするスクリプトをアプリケーション形式で作成し、".sleep"に記述しました。
これで、
スリープ時:共有フォルダをアンマウント
復帰時 :共有フォルダをマウント
となり、質問時に理想としていた状態が実現できました!
Y. Kawabe さん、本当にありがとうございました。
スリープ復帰後に共有フォルダの接続が切れてしまいます