Я использую свой iPad для удаленной разработки приложений (я проверяю, когда вернусь к своему iMac) и для внесения других небольших изменений в файлы на моем компьютере. До сих пор я использовал TeamViewer для iOS и iMac, и он работал до тех пор, пока я не попытался получить доступ к своему iMac с компьютера под управлением Windows 7. Затем однажды TeamViewer упал.

Я ищу способ перезагрузить мой Mac при сбое удаленной программы. Есть ли Applescript, который делает это?

Кроме того, существует ли программа VNC, которая имеет совместимое приложение для iOS, которое поддерживает удаленную перезагрузку?

3 ответа3

1

Вы можете настроить задачу в iMac для проверки существования процесса TeamViewer и перезагрузить компьютер, если он не найден. Но почему бы просто не перезапустить процесс, а не перезагрузить всю машину?

1

Это довольно тривиально, если вы знакомы с командной строкой. Для iOS существует множество SSH-клиентов: вам нужно активировать "Удаленный вход" из панели настроек общего доступа.

После того, как это будет сделано, и о сетевых мелочах позаботятся, все, что вам нужно сделать, чтобы перезагрузиться, это SSH в ваш iMac и запустить $ sudo shutdown -r now , что перезагрузит компьютер. Предполагая, что это все, что вам нужно сделать, чтобы запустить TeamViewer, это должно работать нормально.

Кто-то еще предложил перезапустить процесс. Опять же, предполагая, что все, что вам нужно сделать для активации TeamViewer - это запустить приложение, вам сначала нужно принудительно завершить существующий зависший процесс: что-то вроде $ sudo killall TeamViewer , а затем перезапустить приложение с помощью $ open /Applications/TeamViewer.app или что-то подобное.

0

Вам не нужно перезагружаться, чтобы перезапустить TeamViewer; вы можете получить launchd программ для наблюдения за процессом и повторно запустить его , если он выходит из строя.

Во-первых, вам нужно определить фактический исполняемый файл. Откройте терминал и осмотрите пакет TeamViewer - исполняемый файл, вероятно, будет по адресу /Applications/TeamViewer.app/Contents/MacOS/TeamViewer но ваш пробег может отличаться. Чтобы убедиться, что вы нашли правильный путь, введите его в терминале - если TeamViewer запускается, вы, вероятно, получили его. В качестве альтернативы, откройте Activity Monitor во время работы 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 и GroupName и используйте sudo при запуске launchd load. Чтобы избавиться от элемента (например, если вам действительно нужно выйти из TeamViewer), просто замените load в приведенной выше команде на unload.

В качестве альтернативы, Lingon предоставляет графический интерфейс для запуска, и может быть проще.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .