Reconfigurando un trabajo launchd

1

Quiero configurar un daemon launchd para ejecutar un análisis de virus a diario. He escrito un .plist y lo cargué manualmente usando launchctl load pero no parece funcionar. Quería modificarlo para intentar y depurar por qué. Sin embargo, no parece ser modificable.

Aquí está la salida de sudo launchctl list org.macports.clamscan :

{
        "LimitLoadToSessionType" = "System";
        "Label" = "org.macports.clamscan";
        "TimeOut" = 30;
        "OnDemand" = true;
        "LastExitStatus" = 19968;
        "Program" = "clamscan";
        "ProgramArguments" = (
                "clamscan";
                "--suppress-ok-results";
                "-l";
                "/var/log/clamscan.log";
                "-r";
                "/Users";
        );
};

Intenté descargarlo para editarlo y volver a cargarlo, pero no pareció funcionar:

$ sudo launchctl unload org.macports.clamscan
Password:
$ sudo launchctl list org.macports.clamscan
{
        "LimitLoadToSessionType" = "System";
        "Label" = "org.macports.clamscan";
        "TimeOut" = 30;
        "OnDemand" = true;
        "LastExitStatus" = 19968;
        "Program" = "clamscan";
        "ProgramArguments" = (
                "clamscan";
                "--suppress-ok-results";
                "-l";
                "/var/log/clamscan.log";
                "-r";
                "/Users";
        );
};

Intenté modificarlo para reemplazar clamscan con una secuencia de comandos para poder verificar con qué argumentos fue llamado. Sin embargo, cuando intento cargarlo, se queja de que ya está cargado.

$ sudo launchctl load ~/Code/org.macports.clamscan.plist 
/Users/Stephen/Code/org.macports.clamscan.plist: service already loaded

Además de reiniciar, ¿hay una manera de editar un trabajo launchd instalado?  Esto es para Sierra.

    
pregunta Stephen Rasku 14.06.2017 - 06:24

1 respuesta

1

Puedes decirle a launchd que lo elimine de su caché y lo vuelva a leer desde el disco. Desde la página del manual:

 uncache service-name
          This subcommand instructs launchd to bypass its service cache
          for the named service and instead read the service's configu-
          ration file directly from disk.  launchd maintains an in-mem-
          ory cache of XPC service configuration files to minimize the
          disk I/O. This subcommand will remove a cached entry so that
          developers may more rapidly iterate on a service's configura-
          tion. It should not ever be used as part of production work-
          flow.
    
respondido por el Jenny D 13.07.2017 - 11:11

Lea otras preguntas en las etiquetas