2 votos

launchd ejecuta el programa cada hora aunque se proporcione la matriz StartCalendarInterval

Tengo mi StartCalendarInterval configurado en mi archivo launchd plist así:

<?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.script.launcher</string>

        <key>Program</key>
        <string>/usr/bin/osascript</string>

        <key>ProgramArguments</key>
        <array>
            <string>osascript</string>
            <string>/Users/me/basic-script.scpt</string>
        </array>

        <key>StartCalendarInterval</key>
        <array>
            <dict>
                <key>Hour</key>
                <integer>8</integer>
                <key>Minute</key>
                <integer>0</integer>
            </dict>
            <dict>
                <key>Hour</key>
                <integer>16</integer>
                <key>Minute</key>
                <integer>0</integer>
            </dict>
            <dict>
                <key>Hour</key>
                <integer>24</integer>
                <key>Minute</key>
                <integer>0</integer>
            </dict>
        </array>
    </dict>
</plist>

A pesar de que estoy declarando 3 diferentes StartCalendarInterval s, el agente sigue lanzando el programa cada hora.

¿Qué estoy haciendo mal?

.

SOLUCIÓN:

Según Respuesta de @Phong , para launchd archivos plist y StartCalendarInterval La hora militar de medianoche, las 12 de la mañana o las 24 horas es Hour = 0 no 24 .

2 votos

Por favor, publica el archivo plist completo, ya que otras partes del archivo podrían ser la causa del problema.

0 votos

Actualizado. Me imaginé que cualquiera que intente ayudar querrá verlo, pero Stack no me dejó publicarlo ya que decía "demasiado código".

2 votos

Para la Hora, querrá especificar 0 en lugar de 24. No puedo comprobarlo ahora mismo, pero supongo que está desechando el 24 como inválido, y que sólo se ejecuta en el minuto 0. Además, ¿has descargado y recargado el agente después de editar el plist?

4voto

Andreas Scherer Puntos 161

launchd está tirando 24 como un inválido Hora por lo que se interpreta toda esa entrada como Minuta \= 0 . Esto hace que su agente se ejecute cada hora en punto.

El valor correcto para la medianoche es 0 :

<dict>
    <key>Hour</key>
    <integer>0</integer>

    <key>Minute</key>
    <integer>0</integer>
</dict>

1 votos

Todavía no he llegado a la medianoche, pero ya puedo confirmar que se ha resuelto el problema porque las ejecuciones horarias se han detenido y cuando he cambiado de 24 a 0 También he añadido una entrada para las 11PM(23) y ha funcionado perfectamente. Gracias.

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