Періодично запускайте додаток за допомогою Automator


Відповіді:


3

Ви також можете використовувати AppleScript замість ( /Applications/Utilities/AppleScript\ Editor.app/).

Наступний сценарій запускає Terminal.app кожні сім секунд:

on idle
    tell application "System Events"
        tell application "Terminal"
            run
        end tell
        return 7
    end tell
end idle

Збережіть цей скрипт як додаток і нехай він залишається відкритим після обробки запуску.


Дякую, це допомагає! Що станеться, якщо додаток вже запущений і виконує якусь роботу? Чи буде це перервано?
Золтан Маток

Я спробував ваше рішення, і воно працює, начебто ... У додатку mac, який я намагаюся запустити, я помістив метод [NSApp terminate: self], щоб він закрив себе після того, як виконана його робота. Коли я запускаю скрипт, він успішно запускає програми, і він зробить свою роботу і вийде. Коли сценарій запускається знову, він видасть помилку "з'єднання недійсне", що, як я читав, означає, що сценарій намагався зв’язатися із програмою, яка припинила роботу під час виконання сценарію. Як я можу цього уникнути?
Золтан Маток

@ ZoltánMatók Вибачте, але я не можу точно слідувати проблемі, яку ви описуєте. Чому Apple Script запустила цю помилку підключення? Я без проблем використовував варіанти цього яблучного сценарію для різних програм. Тож я очікую, що проблема полягає у вашій описаній мак-програмі. Можливо, вам слід відкрити окреме запитання щодо Stackoverflow?
gentmatt

1
Дякую, я зробив! Ось посилання, якщо вас цікавить apple.stackexchange.com/questions/66007/…
Zoltán Matók

@ ZoltánMatók Так, я знайшов це вже;) Я відкликав його, як тільки побачив його.
gentmatt

1

Використовуючи запуск, ви можете зберегти список властивостей нижче як ~/Library/LaunchAgents/com.stackexchange.apple.65970.plist, а потім завантажити його за допомогою launchctl load ~/Library/LaunchAgents/com.stackexchange.apple.65970.plistабо вийти з системи та знову увійти.

<?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>com.stackexchange.apple.65970</string>
    <key>ProgramArguments</key>
    <array>
        <string>open</string>
        <string>-jga</string>
        <string>Mail</string>
    </array>
    <key>RunAtLoad</key>
    <true/> <!-- run before the first 15 minutes have passed -->
    <key>StartInterval</key>
    <integer>900</integer>
</dict>
</plist>

open -gвідкриває програму на задньому плані, але вона все одно відкриє видиме вікно, якщо програма раніше не працювала. -jтакож приховує додаток, якщо воно не працювало. Він був доданий у 10.8 та відображається лише у довідковому повідомленні.

Ви також можете додати такий рядок до crontab:

*/15 * * * * open -jga Mail

Круто, це виглядає чудово. Як би ви змусили додаток вийти через 5 хвилин, а потім перезапустити знову? Я запитую про запуск клієнта для синхронізації Google Drive для Mac. Тут використовується багато пам'яті. Тому я хочу синхронізувати, закрити його, а потім почекати 30 хвилин, щоб повторно зробити.
Іван
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.