3 votes

launchctl ne démarre pas le démon cntlm

J'ai installé cntlm sur osx en utilisant l'option formule maison .

J'ai ensuite copié le fichier .plist et lancé le démon :

sudo cp -fv /usr/local/opt/cntlm/*.plist /Library/LaunchDaemons
sudo chown root /Library/LaunchDaemons/homebrew.mxcl.cntlm.plist

Mais après le redémarrage, le démon ne fonctionne pas. J'ai essayé de le lancer manuellement avec

sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.cntlm.plist

mais sa sortie est

/Library/LaunchDaemons/homebrew.mxcl.cntlm.plist: Operation already in progress

J'ai également vérifié le fichier plist avec plutil -lint et c'est bon.

C'est la source de /Library/LaunchDaemons/homebrew.mxcl.cntlm.plist :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>homebrew.mxcl.cntlm</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/opt/cntlm/bin/cntlm</string>
    </array>
    <key>KeepAlive</key>
    <false/>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/var/null</string>
    <key>StandardErrorPath</key>
    <string>/var/null</string>
  </dict>
</plist>

Savez-vous pourquoi cela se produit et comment le faire fonctionner correctement en tant que démon ?

0 votes

Pouvez-vous vérifier system.log en utilisant Console.app pour les messages. launchd est généralement efficace pour enregistrer les erreurs et les avertissements utiles sur les raisons pour lesquelles un travail n'est pas exécuté. Voyez-vous que le travail est enregistré comme étant démarré ?

0 votes

Non, il n'y a pas de journal de démarrage. Mais si j'essaie de le démarrer manuellement, le message suivant apparaît : "Opération déjà en cours". J'ai également vérifié avec ps aux si cntlm est en cours d'exécution, mais qu'aucun processus n'existe. Voir aussi github.com/Homebrew/homebrew/issues/44741

0 votes

Je changerais stdout et err en fichiers et verrais s'il y a quelque chose dedans.

4voto

nwinkler Points 8556

Je poste ceci comme une réponse séparée puisque je n'ai pas eu à manipuler les éléments suivants plist pour que cela fonctionne. Voici comment j'ai installé et démarré CNTLM aujourd'hui :

Installer CNTLM avec Homebrew

brew install cntlm

Modifier la configuration de CNTLM

Modifier le /usr/local/etc/cntlm.conf mettez à jour les éléments suivants :

  • Username : Le nom d'utilisateur pour l'authentification avec votre proxy NTLM
  • Domain : Définir le domaine (si nécessaire)
  • Password : Votre mot de passe en texte clair - uniquement requis pour les tests, supprimez-le plus tard...
  • Proxy : Le nom d'hôte/IP et le port de votre proxy (peut utiliser plusieurs lignes)
  • NoProxy : Ajoutez les hôtes qui n'ont pas besoin d'être proxyés.

Mise à jour de l'authentification

Exécutez ce qui suit pour permettre à CNTLM de déterminer quels moyens d'authentification fonctionnent avec votre proxy :

cntlm -M https://www.google.com

Il en ressortira une information comme celle-ci, copiez-la dans votre fichier cntlm.conf fichier :

Auth            NTLM
PassNT          ...
PassLM          ...

Ensuite, faites crypter votre mot de passe :

cntlm -H

Saisissez le mot de passe de votre compte lorsque cela vous est demandé. Cette commande imprimera alors quelque chose comme ce qui suit (certaines lignes sont les mêmes que celles de la commande ci-dessus) - copiez ceci dans votre ordinateur. cntlm.conf fichier :

PassLM          ...
PassNT          ...
PassNTLMv2      ...    # Only for user 'xxx', domain 'yyy'

Supprimez votre mot de passe en texte clair du fichier maintenant et commentez l'élément Password ligne.

Vous devrez exécuter cntlm -H à nouveau si vous changez votre mot de passe.

Exécuter CNTLM comme un service MacOS

Plusieurs options existent pour cela, choisissez celle qui vous convient le mieux :

# Start CNTLM at boot time - requires `sudo`
sudo brew services start cntlm

# Start CNTLM at login time
brew services start cntlm

# Run CNTLM on demand, don't start at boot or login
brew services run cntlm

# Stop CNTLM (might have to use `sudo` if you started it with `sudo`)
(sudo) brew services stop cntlm

# List all services managed by Homebrew
brew services list

Plus d'informations sur brew services peuvent être trouvés dans la documentation officielle .

0 votes

Bien joué avec cette réponse. La nouvelle fonctionnalité de services de Homebrew a amélioré ce processus. J'ai essayé cela à l'époque où j'ai répondu et brew ne fournissait pas ce genre d'installations pour la plupart des paquets.

2voto

Jahhein Points 1488

J'ai parcouru les informations sur le homebrew et il est indiqué ce qui suit :

  • Modifier /usr/local/etc/cntlm.conf pour configurer Cntlm

  • Pour que launchd lance cntlm maintenant et le redémarre au démarrage : sudo brew services start cntln

Si vous ne l'avez pas fait, ce devrait être votre première étape.

De plus, je ne pense pas /Library/LaunchDaemons est un endroit approprié pour le fichier plist. A mon avis, un meilleur emplacement serait ~/Library/LaunchAgents car il s'exécute à la connexion de l'utilisateur. Il s'agit d'une préférence personnelle pour déterminer quand et pour quels utilisateurs du système vous souhaitez que le logiciel s'exécute. Il est important de le savoir lorsque vous tentez de déboguer votre système si quelque chose devait échouer ou empêcher d'autres opérations système de s'exécuter correctement.

Je ne pense pas non plus que ce fichier plist va s'exécuter pour commencer. Essayez ma suggestion d'emplacement avec le code du fichier plist suivant. Il a une sortie d'erreur appropriée pour la journalisation afin que vous puissiez voir ce qui se passe à l'adresse suivante $HOME/Library/Logs/cntlm-output.log y $HOME/Library/Logs/cntlm-error.log

Pour plus d'informations sur les tâches de démarrage de Launchd, consultez la documentation pour les développeurs d'Apple ici : Création de démons de lancement et d'agents

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>homebrew.mxcl.cntlm</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/sh</string>
          <string>-c</string>
            <string>/usr/local/opt/cntlm/bin/cntlm</string>
    </array>
    <key>KeepAlive</key>
    <false/>
    <key>RunAtLoad</key>
    <true/>
        <key> StandardOutPath </key>
          <string> ~/Library/Logs/cntlm-output.log </string>
        <key> StandardErrorPath </key>
          <string> ~/Library/Logs/cntlm-error.log </string>
      </dict>
</plist>

0voto

mdpc Points 4340

Je viens de rencontrer ce problème. Le résultat suivant a été obtenu cntlm pour moi.

sudo launchctl unload /Library/LaunchDaemons/homebrew.mxcl.cntlm.plist
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.cntlm.plist

Ce n'est qu'une solution de rechange, j'en ai peur (du moins pour moi). Le problème se reproduit à chaque redémarrage.

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