遠端存取和啟動我的 iMac?

遠端存取和啟動我的 iMac?

我正在使用 iPad 遠端開發應用程式(當我回到 iMac 時進行測試)並對電腦上的檔案進行其他小的更改。到目前為止,我一直在 iOS 和 iMac 上使用 TeamViewer,而且它一直有效,直到我嘗試從 Windows 7 電腦存取我的 iMac。然後,有一次,TeamViewer 崩潰了。

我正在尋找一種在遠端程式失敗時重新啟動 Mac 的方法。有一個 Applescript 可以做到這一點嗎?

另外,是否有一個 VNC 程式具有相容的 iOS 應用程序,支援遠端重新啟動?

答案1

您無需重新啟動即可重新啟動 TeamViewer;您可以launchd監視進程並在崩潰時重新啟動它。

首先,您需要識別實際的可執行檔。打開終端機並查看 TeamViewer 捆綁包 - 可執行檔可能位於,/Applications/TeamViewer.app/Contents/MacOS/TeamViewer但您的情況可能會有所不同。若要檢查您是否找到了正確的路徑,請在終端中鍵入它 - 如果 TeamViewer 啟動,您可能已經找到了。或者,在 TeamViewer 運行時開啟活動監視器,識別 TeamViewer 進程並點擊工具列中的「檢查」。然後,在「開啟檔案和連接埠」標籤中,可執行檔可能是列出的第一個或第二個條目(在 後面/)。

一旦您知道要追蹤的程序,您就可以建立launchd屬性清單。這是一個 XML 文件,因此您可以使用您喜歡的文字編輯器來完成此操作,也可以使用隨 Mac OS X 開發工具安裝的屬性清單編輯器。創建以下內容:

<?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 加載該項目,這將導致它監視指定的程序,如果它因任何原因退出,它將重新啟動。/Library/LaunchDaemons/some.meaningful.name.plist只有當您的使用者登入時UserName才會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類似的命令重新啟動應用程式。

相關內容