远程访问和启动我的 iMac 吗?

远程访问和启动我的 iMac 吗?

我使用 iPad 远程开发应用程序(回到 iMac 后进行测试)并对计算机上的文件进行其他小修改。到目前为止,我一直在使用适用于 iOS 和 iMac 的 TeamViewer,它一直很有效,直到我尝试从 Windows 7 计算机访问我的 iMac。然后,有一次,TeamViewer 崩溃了。

我正在寻找一种当远程程序失败时重新启动 Mac 的方法。有没有可以做到这一点的 Applescript?

另外,是否有一个具有兼容 iOS 应用程序并支持远程重启的 VNC 程序?

答案1

您无需重新启动即可重新启动 TeamViewer;您可以launchd监控该过程并在其崩溃时重新启动它。

首先,您需要识别实际的可执行文件。打开终端并查看 TeamViewer 软件包 - 可执行文件可能位于,/Applications/TeamViewer.app/Contents/MacOS/TeamViewer但您的里程可能会有所不同。要检查您是否找到了正确的路径,请在终端中输入它 - 如果 TeamViewer 启动,您可能已经找到了它。或者,在 TeamViewer 运行时打开活动监视器,识别 TeamViewer 进程并单击工具栏中的“检查”。然后,在“打开文件和端口”选项卡中,可执行文件可能是列出的第一个或第二个条目(在 之后/)。

一旦知道要跟踪的程序,就可以创建launchd属性列表。这是一个 XML 文件,因此您可以使用自己喜欢的文本编辑器来执行此操作,或者也可以使用随 Mac OS X Dev Tools 安装的属性列表编辑器。创建以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>some.meaningful.name</string>

    <key>OnDemand</key>
    <false/>

    <key>ProgramArguments</key>
    <array>
            <string>/path/we/identified/earlier</string>
    </array>
</dict>
</plist>

将其保存在~/Library/LaunchAgents/some.meaningful.name.plist,然后打开终端并执行:

launchctl load ~/Library/LaunchAgents/some.meaningful.name.plist

这将导致 launchd 加载项目,从而监控指定程序,如果因任何原因退出,它将重新启动。这只会在您的用户登录后运行。要在启动时运行,请将 plist 放入/Library/LaunchDaemons/some.meaningful.name.plist,添加UserName和键/值对,并在运行 load 时GroupName使用。要删除该项目(例如,如果您确实需要退出 TeamViewer),只需将上述命令中的 load 替换为 unload。sudolaunchd

或者,林贡为 launchd 提供了图形界面,可能会更容易。

答案2

您可以在 iMac 上设置一个任务来检查 TeamViewer 进程是否存在,如果未找到则重新启动。但为什么不重新启动进程而不是重新启动整个机器呢?

答案3

如果您熟悉命令行,这相当简单。iOS 上有许多 SSH 客户端:您需要从共享偏好设置窗格中激活“远程登录”。

完成此操作并处理好适当的网络细节后,重新启动时,您需要做的就是通过 SSH 进入 iMac 并运行$ sudo shutdown -r now,这将重新启动机器。假设这就是启动并运行 TeamViewer 所需要做的一切,那么应该可以正常工作。

其他人建议重新启动该进程。同样,假设激活 TeamViewer 所需要做的就是启动该应用程序,您首先需要强制退出现有的挂起进程:类似于$ sudo killall TeamViewer,然后使用$ open /Applications/TeamViewer.app或类似命令重新启动该应用程序。

相关内容