0

我的 Mac 连接到网络上的 SMB 共享时遇到一些问题,然后立即加载应用程序。

在大多数情况下,只需像往常一样将音量设置为在登录时挂载,并且在登录时也运行应用程序(XBMC),Mac 打开时一切正常。

有时,由于我在大量故障排除后无法确定,有时自动安装卷会失败,因为它认为网络位置不可用。因此,除非我重新启动 Mac,否则 Mac 无法创建卷挂载,然后它会再次运行。

现在我想要一个 AppleScript,它将尝试创建卷挂载三 (3) 次,然后加载 XBMC。如果 3 次尝试后仍无法安装宗卷,请强制 Mac 重新启动。这将导致脚本在重新启动后再次从头开始运行。

我将如何在 AppleScript 中实现这一点?

第二个问题:

我将我的 Mac 设置为在 1 小时不活动后暂停。唯一的问题是,如果 Mac 已暂停一段时间,在唤醒 XBMC 后,有时无法加载远程存储的内容。

那么,是否可以在 Mac 从暂停状态恢复时运行脚本,从而使 Mac 重新启动?

感谢所有阅读我整个帖子的人,我意识到这有点咆哮。

问候。

4

1 回答 1

0

试试这个作为你的第一个问题。至于您的“暂停”问题,我不知道答案。但是我会调查launchd。您可能可以编写一个launchd plist 文件,该文件在mac 恢复时运行,并且该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 回答