Quel est le meilleur moyen de démarrer automatiquement une application si elle ne fonctionne pas?


4

Je veux démarrer automatiquement une application si elle ne fonctionne pas. Mon utilisation est le cas où si je quitte une application particulière, je veux redémarrer automatiquement. Dans mon cas, c'est l'application Messages.

Je souhaite toujours que l'application Messages continue de fonctionner. Par conséquent, si je quitte Messages, je souhaite le redémarrer.

Quelle est la meilleure façon de gérer cela?

Réponses:


5

Ce que vous cherchez, c'est launchd.

Il vous permettra d’exécuter une application en continu (démarrage automatique au démarrage, redémarrage à la fermeture / crash)

Pour l'utiliser ajouter un plist déposer dans ~/Library/LaunchAgents/

<?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>RunAtLoad</key>  
        <true/>
        <key>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>SomeApp.restart</string>
        <key>ProgramArguments</key>
        <array>
                <string>/path/to/SomeApp.app/Contents/MacOS/SomeApp</string>
        </array>
        <key>StartCalendarInterval</key>
        <dict>
            <key>Hour</key>
            <integer>5</integer>
            <key>Minute</key>
            <integer>10</integer>
       </dict>
</dict>
</plist>

Puis chargez-le une fois avec launchctl load ~/Library/LaunchAgents/SomeApp.restart.plist

  • le RunAtLoad Cette option lancera l'application la première fois que launchctl l'exécutera.
  • le KeepAlive option relancera l'application si elle se bloque.
  • le StartCalendarInterval l'exécutera à un moment donné. Vraisemblablement, cela est mutuellement exclusif avec les deux précédents, mais est inclus pour montrer ce qui peut être fait avec launchd Launchctl va l'exécuter après les redémarrages.

1

Comme mentionné, launchctl est la commande que vous voulez. Je trouve que la syntaxe pour launchctl est assez difficile comparée à crontab. Bien sûr, launchctl fait beaucoup plus que cron. Ainsi, j'utilise Lingon fournir une interface graphique pour gérer launchctl.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.