3 votos

Launchd No Ejecutar La Aplicación

He hecho una aplicación (comprobado que funciona) y quiero hacer que se ejecute todos los días a la medianoche. Aquí está mi archivo PLIST:

EDIT: después de usar @user3439894 del código de aquí es lo que he puesto en mi PLIST

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.example.exampled</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/open</string>
        <string>-a</string>
        <string>/Applications/Calculator.app</string>
    </array>
    <key>RunAtLoad</key>
    <false/>
    <key>StartCalendarInterval</key>
    <array>
        <dict>
            <key>Hour</key>
            <integer>0</integer>
            <key>Minute</key>
            <integer>0</integer>
        </dict>
    </array>
</dict>
</plist>

Cuando lo ejecuto el uso de sudo launchctl load /Users/fbisurveillancevan/Desktop/LaunchMessageText.plist, devuelve nada. Cuando intento de nuevo, vuelve launchctl: already loaded El demonio/agente parece ser cargado, pero no se ejecuta

5voto

user3439894 Puntos 5883

Además de los comentarios que he hecho a su OP, utilice este ejemplo para solucionar los problemas que están teniendo.

  • Nota: Esto fue hecho bajo macOS Sierra Alta y si el uso de macOS Catalina hay algunos cambios en el ejemplo, que se detallan es una nota más abajo.

Como una prueba, en la Terminal, me ejecuta los siguientes comandos:

cd ~/Library/LaunchAgents
touch com.example.exampled.plist
open -e com.example.exampled.plist

Copie y pegue el siguiente ejemplo PLIST XML de código en el abierto com.example.exampled.plist archivo, la configuración de la StartCalendarInterval durante un par de minutos a partir de ahoray, a continuación, guardar y cerrar.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.example.exampled</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/open</string>
        <string>-a</string>
        <string>/Applications/Calculator.app</string>
    </array>
    <key>RunAtLoad</key>
    <false/>
    <key>StartCalendarInterval</key>
    <array>
        <dict>
            <key>Hour</key>
            <integer>0</integer>
            <key>Minute</key>
            <integer>0</integer>
        </dict>
    </array>
</dict>
</plist>


De vuelta en la Terminalejecutamos:

launchctl load com.example.exampled.plist

Ahora la Calculadora se abrirá en el tiempo establecido, el cual se establece el uso de tiempo de 24 Horas, e.g 0 través 23 de la Hora clave.


macOS Catalina Notas:

  • En una instalación limpia de macOS Catalina, ~/Library/LaunchAgents no existe de forma predeterminada. Utilice el siguiente comando antes de cd ~/Library/LaunchAgents:

    mkdir -p ~/Library/LaunchAgents
    
  • Debido a los cambios hechos por Apple en macOS Catalina el nombre completo de la ruta de la Calculadora es: /System/Applications/Calculator.app

Cambio:

<string>/Applications/Calculator.app</string>

A:

<string>/System/Applications/Calculator.app</string>

O como alternativa, sólo tiene que utilizar:

<string>Calculator</string>
  • Ambos métodos de trabajo.

Pruebas adicionales se hizo con un paquete de la aplicación (myApp.app) creado por mí, guardado en /Applications en macOS Catalina, y los siguientes valores trabajado para mí:

<string>/Applications/myApp.app</string>

O:

<string>myApp</string>

Nota: El uso de sudo es necesaria cuando se trata con agentes y los demonios que están en los lugares designados otros, a continuación, ~/Library/LaunchAgents con el fin de crear, modificar, cambiar los permisos para hacer de sólo lectura, eliminar, etc. el XML Plist archivo en sí. También tenga en cuenta que cuando se utiliza el launchctl comando para demonios, sudo puede ser necesaria en algunos casos, sin embargo, no use sudo a load agentes con launchctl, ya que se carga como un demonio.

Revisar las páginas de manual, en la Terminal, utilice man command donde command es el de los comandos de nombre, por ejemplo man launchctl, o más fácil de leer las páginas del manual, sólo tienes que escribir los comandos de nombre y haga clic en él selección: Abrir la Página man

Si usted va a utilizar en el Lanzamiento de los Agentes y de Lanzamiento de los Demonios, le recomiendo que lea las páginas del manual para launchctl, launchd.plist y launchd.


Por las páginas de manual para launchctl y launchd.plist el PLIST archivos para el Lanzamiento de los Agentes y de Lanzamiento de los Demonios pertenecen en directorios específicos:

FILES
    ~/Library/LaunchAgents          Per-user agents provided by the user.
    /Library/LaunchAgents           Per-user agents provided by the administrator.
    /Library/LaunchDaemons          System-wide daemons provided by the administrator.
    /System/Library/LaunchAgents    Per-user agents provided by OS X.
    /System/Library/LaunchDaemons   System-wide daemons provided by OS X.

También hay un ejemplo de xml de las listas de propiedades del archivo al final de la página de manual paralaunchd.plist.

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