1 votes

Ce fichier plist launchd est-il corrompu ou est-ce juste moi?

J'étais en train de lire un article sur l'utilisation de Bittorrent Sync sur OS X qui inclut un fichier launchd plist censé maintenir l'application en marche en cas de crash. Cependant, cela ne semble pas fonctionner, car l'application a déjà planté sans se relancer. Je cherche de l'aide pour corriger le plist.

Le plist ressemble à ceci :

    KeepAlive

        Crashed

        SuccessfulExit

    Label
    sync.com.tjluoma.bittorrentsync
    ProgramArguments

        /usr/bin/open
        -W
        -a
        BitTorrent Sync

    RunAtLoad

La partie "astucieuse" consiste à utiliser /usr/bin/open pour lancer l'application, avec -W pour s'assurer que open attende que l'application se ferme. Cependant, je pense que c'est également la raison pour laquelle cela ne fonctionne pas réellement. Si j'interprète correctement cela, l'application ne se relancera que si /usr/bin/open plante, pas si Bittorrent Sync plante. Pour que l'approche ci-dessus fonctionne, open devrait renvoyer un statut d'erreur si l'application qu'il a ouverte a planté (ce qui n'est pas le cas).

Je sais que je pourrais résoudre ce problème en abandonnant open et en codant directement le chemin vers l'exécutable, par exemple /Applications/BitTorrent Sync.app/Contents/MacOS/BitTorrent Sync. Mais y a-t-il une alternative qui ne nécessite pas un codage en dur du chemin complet ? Utiliser open serait élégant, si cela fonctionnait.

1voto

Tom Harrington Points 2112

C'était comme je m'y attendais. La version dans la question ne relance pas l'application, car /usr/bin/open ne renvoie pas un statut d'erreur lorsque l'application plante. Je n'ai pas pu trouver de meilleure façon que de coder en dur le chemin de l'exécutable, donc j'utilise maintenant ce qui suit.

        KeepAlive

                Crashed

                SuccessfulExit

        Label
        com.getsync.bittorrentsync
        Program
        /Applications/BitTorrent Sync.app/Contents/MacOS/BitTorrent Sync
        RunAtLoad

J'ai vérifié que cela relance effectivement l'application si elle plante.

Une version plus facilement téléchargeable de ceci peut être trouvée à https://gist.github.com/atomicbird/ff2de46a594cdb5c8e69

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