launchctl no inicia el demonio cntlm


2

He instalado cntlm en osx usando la fórmula homebrew .

Luego copié el archivo .plist y comencé 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 está ejecutando. 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 -linty 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é sucede esto y cómo ejecutarlo correctamente como demonio?


Por favor, ¿puedes consultar system.logcon Console.app para ver los mensajes? launchdnormalmente es bueno para registrar errores útiles y advertencias sobre por qué un trabajo no se está ejecutando. ¿Ves el trabajo registrado como iniciado?
— Graham Miln

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

Me gustaría cambiar stdout y err a archivos y ver si hay algo en ellos
— Mark

Intente poner esto ~/Library/LaunchAgentsy cambie Salida y error para ~/Library/Logs/a_log_file_appropriateque pueda obtener alguna información en lugar de nula.
— Jahhein

Respuestas:


2

Revisé la información de homebrew y dice lo siguiente:

  • Editar /usr/local/etc/cntlm.confpara configurar Cntlm

  • Para iniciar, inicie cntlm ahora y reinicie al inicio: sudo brew services start cntln

Si no ha hecho esto, ese debería ser su primer paso.

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

Tampoco creo que ese archivo plist se vaya a ejecutar para empezar. Pruebe mi sugerencia de ubicación con el siguiente código de archivo plist a continuación. Tiene salida de error adecuado para el registro para que pueda ver lo que está pasando ubicada en $HOME/Library/Logs/cntlm-output.logy$HOME/Library/Logs/cntlm-error.log

Para obtener más información sobre los trabajos de inicio Launchd, consulte la documentación del desarrollador 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>

1

Estoy publicando esto como una respuesta separada ya que no tuve que jugar con ningún plistarchivo para que esto funcione. Así es como instalé y comencé CNTLM hoy:

Instalar CNTLM con Homebrew

brew install cntlm

Editar configuración CNTLM

Edite el /usr/local/etc/cntlm.confarchivo, actualice los siguientes elementos:

  • Username: El nombre de usuario para autenticarse con su proxy NTLM
  • Domain: Establece el dominio (si es necesario)
  • Password: Su contraseña en texto sin formato; solo es necesaria para la prueba, elimínela más tarde ...
  • Proxy: Su nombre de host proxy / IP y puerto (puede usar varias líneas)
  • NoProxy: Agregue cualquier host que no necesite ser proxy

Actualizar autenticación

Ejecute lo siguiente para permitir que CNTLM descubra qué autenticación significa trabajar con su proxy:

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

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

Auth            NTLM
PassNT          ...
PassLM          ...

Luego, encripte su contraseña:

cntlm -H

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

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

Elimine su contraseña de texto sin formato del archivo ahora y comente la Passwordlínea.

Tendrá que volver a ejecutar cntlm -Hsi cambia su contraseña.

Ejecute CNTLM como un servicio macOS

Existen varias opciones para esto, elija la que más le 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

Se brew servicespuede encontrar más información sobre en la documentación oficial .


Bien hecho con esta respuesta. La nueva característica de servicios de Homebrew mejoró este proceso. Traté de esta manera cuando respondí y brew no proporcionó ese tipo de instalaciones para la mayoría de los paquetes.
— Jahhein

0

Llegué a este problema hace un momento. Lo siguiente se puso en cntlmmarcha para mí.

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

Esto es solo una solución alternativa, me temo (al menos para mí). El problema se repite en cada reinicio.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.