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.