1 votos

Detención de Dovecot mediante launchctl

Tengo Dovecot funcionando como demonio a través de un plist de launchd. Se ejecuta bien pero no se detiene si ejecuto launchctl stop ni si descargo el plist por lo que termino usando doveadm stop . ¿Existe alguna clave o comando que añada al plist para indicarle cómo detener un servicio? He revisado las páginas man de launchd.plist y launchctl pero no encuentro nada parecido.

Esta es la parte relevante del 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>local.dovecot</string>
<!-- 
    <key>KeepAlive</key>
    <false/>
 -->
    <key>RunAtLoad</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
      <string>/opt/pkg/sbin/dovecot</string>
<!--       <string>-F</string> -->
    </array>
    <key>StandardErrorPath</key>
    <string>/Library/Logs/Dovecot/stdout.log</string>
    <key>StandardOutPath</key>
    <string>/Library/Logs/Dovecot/stderr.log</string>
  </dict>
</plist>

No hay KeepAlive ni nada por el estilo, es un plist muy simple.

Cualquier ayuda con esto será muy apreciada.

0 votos

Podríamos ver el plist completo, por favor.

0 votos

@TonyWilliams Hecho.

0 votos

@TonyWilliams He encontrado la respuesta, gracias por tomarte el tiempo de echar un vistazo.

1voto

Iain Puntos 137

El problema desaparece si descomento el -F (que comenté mientras intentaba que funcionara alguna otra parte del montaje). El -F ejecuta Dovecot en primer plano y hace no daemonize.

Desde esta respuesta en SuperUser :

Launchd espera que los programas que lanza no se demonicen a sí mismos; si lo hacen, launchd lo detecta como el programa que sale, y limpia todos los subprocesos (es decir, mata el programa ahora demonetizado).

En este caso no ha matado el programa (como no esperaría si el interruptor fuera el equivocado), sólo ha cedido el control para que no pudiera/no pudiera apagarlo.

Nota para uno mismo, intenta lo obvio, tus suposiciones pueden ser erróneas.

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