0 votos

La ejecución de apple script a través de launchctl no funciona BigSur

Me gustaría ejecutar un breve script en segundo plano a través de launchctl que envía una notificación cada 10 segundos.

Lo que he hecho hasta ahora:
He creado un archivo plist llamado test.plist situado en /Library/LaunchAgents/ que contiene las siguientes líneas:

<?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>test</string>
    <key>Program</key>
    <string>/usr/bin/osascript</string>
    <key>ProgramArguments</key>
    <array>
        <string>osascript</string>
        <string>~/Desktop/test.scpt</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

El comando plutil /Library/LaunchAgents/test.plist devuelve OK
El archivo test.scpt es un apple script situado en el Escritorio que contiene:

repeat
    display notification "HELLO WORLD" with title "TITLE"
    delay 10
end repeat

Lo que he probado es lo siguiente:

  • primero corro sudo chown root:wheel /Library/LaunchAgents/test.plist
  • después de eso launchctl enable gui/501/test
  • entonces launchctl bootstrap gui/501 /Library/LaunchAgents/test.plist
  • seguido de launchctl kickstart -k gui/501/test
  • finalmente launchctl start gui/501/test

Hasta ese momento no tengo errores pero no pasa nada (no hay notificación).
Al comprobar launchctl list Obtengo - 1 test ¡para mi proceso!

He probado este procedimiento colocando mi archivo en Library/LaunchAgents , ~/Library/LaunchAgents y Library/LaunchDeamons . El mismo resultado.

¿Cómo puedo solucionarlo?

También durante mis pruebas he añadido un montón de plists de prueba. ¿Cómo puedo eliminarlos?
launchctl remove test no parece funcionar.

Muchas gracias por su tiempo.

1voto

Pa Dalton Puntos 23

¡Eureka!

Encontré una solución: el problema era que mi script estaba ubicado en el Escritorio. Así que cambié su ubicación a /Users/<my username>/Library/Scripts/ y modificó también la ruta en el plist.

Para eliminar los plists de prueba que hice: sudo nano /var/db/com.apple.xpc.launchd/disabled.*.plist eliminó los servicios no deseados y luego reinició.

Espero que sea de ayuda.

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