7
votes

~ / Bibliothèque / Launchagents Plist court manuellement mais pas automatiquement

Je commence à travailler avec LaunchD et je souhaite configurer un fichier de plat tel que lorsque j'insère une carte SD dans mon serveur Mac Mini Mac (avec Snow Leopard Server), je veux que un script shell soit exécuté (qui devrait copier tout les fichiers JPG, les renommer, etc.).

Donc, j'ai créé un fichier de plateau dans ~ / Bibliothèque / Landagents (voir ci-dessous pour son contenu - il devrait rechercher des modifications / volumes) et j'ai créé un script shell qui dit "Beep" - plus tard, il fera quelque chose de plus utile. p>

Le fichier de plis est enregistré auprès de LaunKCTL, et lorsque je l'exécute (launchtl Démarrer COM.PETERS.RUNWHENSDMOUNT), l'ordinateur dit bip quand une mémoire La carte est branchée et reste silencieuse lorsqu'il n'y a pas de carte mémoire. Donc, apparemment, le plat appelle le script shell, qui vérifie ensuite si la carte SD spécifique est là. Je suppose que cela prouve également qu'il n'y a pas de problème avec les autorisations de la carte SD. P>

Mais cela ne semble pas courir seul ??? N'importe quelle idée pourquoi ?? p>


Fichier de plateau: ~ / Bibliothèque / Laundangents / com.Peters.Runwhensdmount.Plist strong> P>

#!/bin/bash
if [ -d "/Volumes/NIKON D40X" ]; then
    say beep
fi


2 commentaires

Veuillez ré-poster le contenu de la plis afin que nous puissions le voir.


Paul, le code était dans le poste d'origine, il a été simplement formaté de manière incorrecte. J'ai mis à jour le formatage afin que les blocs de code apparaissent maintenant dans la question.


3 Réponses :


8
votes

Après avoir créé un nouveau plat dans votre dossier ~ / Library / Laundagents, vous devez indiquer l'application Launchd à ce sujet. Les deux façons de base de faire sont:

  1. Déconnectez-vous, puis connectez-vous dans. - Chaque fois que vous vous connectez, LaunchD numérisera le contenu de votre dossier ~ / Bibliothèque / Landagents et ajoutez n'importe quel plat qu'il y trouve. p> li>

  2. Chargez le plat d'une ligne de commande terminale avec "LaunchCTL". La syntaxe de la commande est: p>

    launchctl unload {Path-to-plist}
    


1 commentaires

Un autre outil facile à charger et à décharger vos agents de lancement pourrait être iTunes.Apple. com / at / app / launchdControl / ID590231085? MT = 12



8
votes

Je viens d'avoir un problème similaire avec le lancement automatique des services dans ~ ~ / bibliothèque / laurénagents , mais dans mon cas, aucun des services définis * .plist défini a commencé.

Le problème a évidemment été connecté au répertoire ~ ~ / bibliothèque / laurénagents et non aux fichiers de plat-circuit lui-même. La solution consistait à réinitialiser les autorisations de fichier.

CHMOD 700 ~ / Bibliothèque / Launchagents .

Mise à jour des utilisateurs d'homebrew: (2015-02-23)

hier je viens de trouver KnockRocket qui est une préférence Mac pour la gestion des services avec Launchd. Il est conscient de l'homebrew et ajoute une belle assurance-chômage pour la gestion des services de lanceur Homebrew.

Ceci peut ne pas vous aider avec des autorisations d'utilisateur incorrectes, mais elle est open source afin que vous puissiez Fourchette du projet et ajoutez le chèque d'autorisation comme une fonctionnalité.


3 commentaires

Bien que cela soit effectivement évident (et ce conseil m'a aidé à résoudre un problème, je pense), je n'ai pas pu trouver de chapitre et de couple indiquant cette exigence


En effet, c'est la première fois que je n'ai vu que quelqu'un suggère de réinitialiser les autorisations sur ~ / bibliothèque / laurénagents mais c'était exactement ce dont j'avais besoin. haut cinq


Moi aussi je suis incapable de trouver de la documentation, mais je peux confirmer que je devais définir des autorisations uniquement des utilisateurs sur non seulement des lanceurs de lancés, mais également le plist. Il n'y a même pas un message de journal sur la question.



2
votes

Deux outils qui aident à la création et à la gestion des éléments de LaunchD sont les suivants:

  1. LaunchControl - " LaunchControl est un launchd (8) retende-frontend Vous permettant de créer, gérer et déboguer des services système et d'utilisateur sur votre Mac. "
  2. lingon - "< un utilitaire facile à utiliser et puissant qui fonctionne automatiquement sur votre Mac "

    Comme une note: Brett Terpstra (qui fait un groupe de superbes macs travaillant sur des choses comme NVALT ) a récemment commenté dans son poste " Tâches de déclenchement À distance avec NOTILYUTIL et LANCHND "qu'il utilisait à Lingon, mais utilisait LaunkControl plus récemment. L'un d'entre eux vaut la peine d'être examiné.


0 commentaires