2

Я использую Quicksilver, отличную программу, которая действительно ускоряет мою работу. Я настроил его запуск при входе в систему.

Однако, начиная со Snow Leopard, он становится немного менее стабильным, и время от времени он падает. И, очевидно, он не будет перезапущен сам по себе.

Я уверен, что могу использовать launchd чтобы он всегда работал, когда я вошел в систему. Есть ли хорошее руководство / пример того, как убедиться, что процесс перезапускается, когда он убит / завершен / потерпел крах?

2 ответа2

3

Погуглил на launchd quicksilver Я получил этот сайт ... который выглядит правильно.

Вот суть в том случае, если эта страница исчезнет:

  • В настройках QS отключите «запускать при входе»

  • Создайте новый LaunchAgent в моей учетной записи, сохранив следующий файл как ~/Library/LaunchAgents/org.quicksilver.plist (фактически я использовал Lingon для создания файла - очень удобная утилита!):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>org.quicksilver</string>
        <key>ProgramArguments</key>
        <array>
                <string>/Applications/Quicksilver.app/Contents/MacOS/Quicksilver</string>
        </array>
</dict>
</plist>

Смотрите man launchd.plist для получения дополнительной информации о ключах, которые вы можете поместить в plist файл launchd, чтобы контролировать, когда и как launchd запускает или перезапускает процессы.

Смотрите также: Создание демонов запуска и агентов.

0

Я не пробовал это, так как у меня нет Mac, но мне сказали, что в эти дни в качестве оболочки по умолчанию используется bash. Вы могли бы добиться этого с помощью bash-скрипта, который вы выполняете при входе в систему любым способом.

То, что он в основном делает, это выполняет данную команду несколько раз, пока она не вернет ноль, что означает, что она закрылась нормально.

#!/bin/bash

RETVAL=1
until [ $RETVAL -eq 0 ]; do
    # change this to whatever is used to launch quicksilver
    /Applications/Quicksilver.app/Quicksilver

    RETVAL=$?
done

Редактировать: Чтобы уточнить, поместите это в пустой текстовый файл (необязательно с расширением .sh) и дайте ему разрешение на выполнение (chmod +x filename), и оно должно работать.

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