4 votes

Quel est le meilleur moyen de lancer automatiquement une application si elle n'est pas en cours d'exécution ?

Je veux lancer automatiquement une application si elle n'est pas en cours d'exécution. Mon cas d'utilisation est que si je quitte une application particulière, je veux la relancer automatiquement. Dans mon cas, il s'agit de l'application Messages.

Je veux toujours garder l'application Messages en marche, donc si je quitte Messages, je veux qu'elle redémarre.

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

5voto

Matthieu Riegler Points 20160

Ce que vous cherchez, c'est launchd .

Il vous permettra d'exécuter une application en continu (démarrage automatique au démarrage, relance lorsqu'elle s'arrête ou se bloque).

Pour l'utiliser, ajoutez un plist 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 le charger une fois avec launchctl load ~/Library/LaunchAgents/SomeApp.restart.plist

  • El RunAtLoad lancera l'application la première fois que launchctl l'exécutera.
  • El KeepAlive relancera l'application si elle tombe en panne.
  • El StartCalendarInterval l'exécutera à une certaine heure. Vraisemblablement, ceci est mutuellement exclusif avec les deux précédents, mais est inclus pour montrer ce qui peut être fait avec launchd. Launchctl le lancera après les redémarrages.

1voto

Michael Points 952

Comme mentionné, launchctl est la commande que vous voulez. Je trouve que la syntaxe de launchctl est plutôt difficile par rapport à celle de crontab. Bien sûr, launchctl fait beaucoup plus que cron. Ainsi, j'utilise Lingon pour fournir une interface graphique pour gérer launchctl.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X