0

Mac がネットワーク上の SMB 共有に接続し、その直後にアプリケーションをロードする際に問題が発生しています。

ほとんどの場合、通常どおりログイン時にボリュームをマウントするように設定するだけで、Mac の電源が入ったときにすべてが機能し、ログイン時にアプリケーション (XBMC) も実行します。

ただし、時折、大量のトラブルシューティングを行った後に突き止めることができたわけではありませんが、ネットワークの場所が利用できないと見なされるため、ボリュームの自動マウントが失敗することがあります。その結果、Mac を再起動しない限り、Mac はボリューム マウントを作成できず、再び機能します。

ここで、ボリューム マウントを 3 回作成してから XBMC をロードする AppleScript が必要です。3 回試行してもボリュームをマウントできない場合は、Mac を強制的に再起動します。これにより、再起動後にスクリプトが最初から実行されます。

AppleScript でこれを達成するにはどうすればよいですか?

2番目の問題:

Mac を 1 時間使用しないとサスペンドするように設定しています。唯一の問題は、Mac がしばらくサスペンドされていた場合、起動時に XBMC がリモートに保存されたコンテンツを読み込めないことがあるということです。

では、Mac がサスペンド状態から再開したときにスクリプトを実行して、Mac を再起動させることは可能でしょうか?

私の投稿全体を読んでくれた人に感謝します。

よろしく。

4

1 に答える 1

0

最初の質問でこれを試してください。あなたの「一時停止」の質問に関しては、答えがわかりません。ただし、私はlaunchdを調べます。おそらく、Mac の再開時に実行される launchd plist ファイルを作成できます。その launchd plist は、コマンド ライン ツール osascript を使用して AppleScript を実行するだけです。

set remoteDiskName to "Disk Name"
set remoteIPAddress to "192.168.1.xxx"
set user_name to "userName"
set pass_word to "password"

repeat 3 times
    set success to mountSMB(remoteDiskName, remoteIPAddress, user_name, pass_word)
    if success then exit repeat
    delay 1
end repeat

if success then
    -- load XBMC
else
    tell application "Finder" to restart
end if

on mountSMB(remoteDiskName, remoteIPAddress, user_name, pass_word)
    if remoteDiskName is in (do shell script "/bin/ls /Volumes") then
        return true
    else
        set theAddress to quoted form of ("smb://" & user_name & ":" & pass_word & "@" & remoteIPAddress & "/" & remoteDiskName)
        set mountpoint to quoted form of ("/Volumes/" & remoteDiskName)
        try
            do shell script "/bin/mkdir " & mountpoint & "; /sbin/mount_smbfs " & theAddress & space & mountpoint
            return true
        on error
            try
                do shell script "/bin/rm -r " & mountpoint
            end try
            return false
        end try
    end if
end mountSMB
于 2011-07-29T10:35:20.237 に答える