1 votes

launchd ne passe pas d'arguments à mon script PHP

J'ai un problème bizarre. J'utilise launchd pour exécuter un tas de scripts shell qui mettent à jour le contenu de mon site. Cela fonctionnait bien quand il s'agissait juste d'appeler scripts normalement. Mais maintenant, j'ai fait le scripts un peu plus compliqué, et le plist launchd a besoin d'envoyer un argument quand il appelle le scripts. Pas de problème, launchd a ProgramArguments juste pour ça. Le problème est que ça ne fonctionne pas. Voici la partie importante de mon launchd.plist :

<key>ProgramArguments</key>
    <array>
        <string>/scripts/content.php</string>
        <string>update</string>
    </array>

J'ai omis juste un Label et une StarCalendarInterval clé. Comme vous pouvez le voir, le chemin vers le script es le premier élément du tableau. Cela semble être la cause la plus courante de ce problème.

Pour être clair, cela lance mon script. Mais il ne passe aucun argument. J'ai demandé au script de sortir print_r($argv) dans un journal d'erreurs et il sort ceci :

Array ( [0] => /scripts/content.php )

Le plus important ici, est que si j'exécute ce qui suit à partir de la ligne de commande, mon script s'exécute parfaitement et comme prévu : ./content.php update

J'ai l'impression de faire tout ce qu'il faut, mais je ne sais pas ce qui se passe ?

0 votes

Veuillez ajouter le plist complet. De plus, avez-vous rechargé la liste après l'avoir modifiée ?

0 votes

J'étais en train de taper "bien sûr que je l'ai rechargé, et j'ai redémarré !" et maintenant je suis assis là à penser.... l'ai-je fait ? Peut-être que non, peut-être que je n'ai chargé que le "jumeau" que j'ai séparé de celui-ci. C'est peut-être ça, après tout.

0 votes

@nohillside on dirait que c'était le problème ! J'ai chargé le nouveau .plist que j'ai créé pour l'autre argument, mais je n'ai jamais rechargé ce plist lorsque j'ai ajouté un argument ici !

1voto

nohillside Points 82672

Si vous modifiez un .plist vous devez exécuter launchctl unload ... y launchctl load ... sinon le système continuera à utiliser la version précédente (en cache).

0 votes

En effet, vous le faites. J'avais dupliqué ce script, ajouté quelques trucs au duplicata, et l'ai chargé correctement. Mais j'ai oublié de décharger et recharger l'original, que j'ai également modifié.

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