Вам не нужно перезагружаться, чтобы перезапустить 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 предоставляет графический интерфейс для запуска, и может быть проще.