3 votos

launchctl no inicia el demonio cntlm

He instalado cntlm en osx usando el fórmula casera .

Luego he copiado el archivo .plist y he iniciado el demonio:

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

Pero después del reinicio el demonio no se ejecuta. He intentado ejecutarlo manualmente con

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

pero su salida es

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

También he comprobado el archivo plist con plutil -lint y está bien.

Esta es la fuente 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>

¿Sabes por qué ocurre esto y cómo ejecutarlo correctamente como demonio?

0 votos

Por favor, ¿puede comprobar system.log utilizando Console.app para los mensajes. launchd suele ser bueno para registrar errores y advertencias útiles sobre por qué un trabajo no se está ejecutando. ¿Ves que el trabajo se registra como iniciado?

0 votos

No, no hay ningún registro de inicio. Pero si intento iniciarlo manualmente dice: "Operación ya en curso". También he comprobado con ps aux si cntlm se está ejecutando, pero no existe ningún proceso. Ver también github.com/Homebrew/homebrew/issues/44741

0 votos

Yo cambiaría stdout y err por archivos y vería si hay algo en ellos

4voto

nwinkler Puntos 3723

Estoy publicando esto como una respuesta separada ya que no tuve que manipular ninguna plist para que esto funcione. Así es como instalé e inicié CNTLM hoy:

Instalar CNTLM con Homebrew

brew install cntlm

Editar la configuración de CNTLM

Editar el /usr/local/etc/cntlm.conf actualice los siguientes elementos:

  • Username : El nombre de usuario para autenticarse con su proxy NTLM
  • Domain : Establezca el dominio (si es necesario)
  • Password : Su contraseña en texto plano - sólo es necesaria para las pruebas, elimínela más tarde...
  • Proxy : Su nombre de host/IP y puerto del proxy (puede utilizar varias líneas)
  • NoProxy : Añade los hosts que no necesitan ser proxies

Actualizar la autenticación

Ejecute lo siguiente para que CNTLM averigüe qué medios de autenticación funcionan con su proxy:

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

Esto escupirá información como esta, copie esto en su cntlm.conf archivo:

Auth            NTLM
PassNT          ...
PassLM          ...

A continuación, haz que tu contraseña esté encriptada:

cntlm -H

Introduzca la contraseña de su cuenta cuando se le pida. Este comando imprimirá algo como lo siguiente (algunas líneas son las mismas que las del comando anterior) - copie esto en su cntlm.conf archivo:

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

Elimine ahora su contraseña de texto plano del archivo y comente el Password línea.

Deberá ejecutar cntlm -H de nuevo si cambia su contraseña.

Ejecutar CNTLM como un servicio de MacOS

Existen múltiples opciones para ello, elige la que más te guste:

# 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

Más información brew services se puede encontrar en la documentación oficial .

2voto

Prajagop Puntos 41

He revisado la información del homebrew y dice lo siguiente:

  • Editar /usr/local/etc/cntlm.conf para configurar Cntlm

  • Para que launchd inicie cntlm ahora y se reinicie en el arranque: sudo brew services start cntln

Si no lo has hecho, ese debería ser tu primer paso.

Además, no creo que /Library/LaunchDaemons es un lugar apropiado para el archivo plist. Una mejor ubicación en mi opinión sería ~/Library/LaunchAgents ya que se ejecuta al iniciar la sesión del usuario. Se trata de una preferencia personal para determinar cuándo y para qué usuarios del sistema desea que se ejecute el software. Es importante saber esto cuando se intenta depurar el sistema si algo falla o impide que otras operaciones del sistema se ejecuten correctamente.

Tampoco creo que ese archivo plist vaya a funcionar para empezar. Pruebe mi sugerencia de ubicación con el siguiente código de archivo plist abajo. Tiene salida de error adecuada para el registro para que pueda ver lo que está pasando ubicado en $HOME/Library/Logs/cntlm-output.log y $HOME/Library/Logs/cntlm-error.log

Para más información sobre las tareas de inicio de Launchd, consulte la documentación para desarrolladores de Apple aquí: Creación de Daemons y Agentes de Lanzamiento

<?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

Chris Granade Puntos 149

Acabo de encontrarme con este problema. Lo siguiente se ha conseguido cntlm que va por mí.

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

Me temo que esto es sólo una solución (al menos para mí). El problema se repite en cada reinicio.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X