1 votes

OSX launchd : Aucun fichier ou répertoire de ce type

J'essaie de mettre en place une simple tâche répétitive avec launchd sous OS X. Mon fichier plist se trouve dans /Users/me/Library/LaunchAgents et tout ce que je veux, c'est qu'il exécute la commande suivante node --version . Mon fichier plist ressemble à ceci :

<?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>Label</key>
    <string>com.blah.testnode</string>
    <key>ProgramArguments</key>
    <array>
        <string>node</string>
        <string>--version</string>
    </array>
    <key>StartInterval</key>
    <integer>300</integer>
</dict>
</plist>

Il a imprimé la bonne réponse quand j'ai lancé launchctl load com.blah.testnode.plist mais il semble maintenant que chaque exécution ultérieure me donne l'erreur suivante :

24/08/14 1:54:03.845 PM com.apple.launchd.peruser.501[251] : (com.blah.testnode[36483]) Échec de l'exécution du travail (3). Mise en place d'un événement pour nous dire quand réessayer : 2 : No such file or directory

24/08/14 1:54:03.845 PM com.apple.launchd.peruser.501[251] : (info.jayharris.testnode[36483]) Le travail a échoué à exec(3) pour une raison étrange : 2

Quelqu'un sait-il comment faire pour que cela fonctionne ? Merci.

1voto

Calin Points 1217

J'ai rencontré un problème similaire en lançant une application node à partir d'un LaunchAgent .plist. Launchctl nécessite le chemin complet d'un binaire ou d'un script afin d'exécuter ledit fichier. La solution, alors, est de s'assurer que vous fournissez le répertoire exact à node. Par exemple, puisque j'ai installé node avec homebrew, je spécifie le chemin complet /usr/local/bin/node .

0voto

Eivind Points 1

Avoir un fichier d'exécution qui est essentiellement un service d'auto-hébergement. Il se déclenche sans problème lorsque je l'exécute à partir du terminal avec le code suivant

/Users/user/Public/node_modules/codem-transcode/bin/codem-transcode -c /Users/user/Public/tmp/config.json

J'ai donc créé un plist script que je veux exécuter au démarrage, et je l'ai stocké dans le dossier LaunchAgent. En l'exécutant, j'obtiens l'erreur "No such file or directory".

Voici une photo montrant presque toutes les informations dont je dispose.

Tout

Et voici le plist en code

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!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>
        <dict>
            <key>SuccessfulExit</key>
            <false/>
        </dict>
        <key>Label</key>
        <string>com.wolftech.transcode.job</string>
        <key>RunAtLoad</key>
        <true/>
        <key>StandardErrorPath</key>
        <string>/tmp/com.wolftech.transcode.job.err</string>
        <key>StandardOutPath</key>
        <string>/tmp/com.wolftech.transcode.job.out</string>
        <key>StartInterval</key>
        <integer>60</integer>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/user/Public/node_modules/codem-transcode/bin/codem-transcode -c /Users/user/Public/tmp/config.json</string>
        </array>
    </dict>
</plist>

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X