Cómo hacer que un service funcione luego del lanzamiento

Hace un time, escribí algunos services y los asigné a combinaciones de teclas. El problema es que, aunque los services se encuentran en el elemento del menu Archivo de la aplicación, tengo que invocarlo manualmente la primera vez, luego puedo usar la combinación de teclas. ¿Hay alguna manera de poder utilizar los services cuando inicias la aplicación por primera vez? Miré esta respuesta , pero prefiero usar una aplicación de terceros solo si es absolutamente necesario.

  • Agregar acceso directo de keyboard a Mac
  • ¿Cómo se escribe el carácter tilde '~' con un keyboard internacional Apple?
  • solucionar problemas de escritura en código de manzana faltando tecla de mayúsculas y numbers en Windows XP en paralelo 8?
  • Mapa de teclas incorrecto en el keyboard de Mac: "<" y "^" están cambiados
  • ¿Hay alguna forma de agregar atajos de keyboard a los paneles de preferences?
  • No se puede activar Bluetooth - Agotado todas las opciones
  • Cómo ocultar Dock en un escritorio no de pantalla completa
  • ¿Qué anuncia el service ATC en Bonjour?
  • Superposition de pantalla cuando se usa la tecla de acceso directo para cambiar la input del keyboard
  • Cómo mostrar los caracteres unicode en emacs cuando se ejecuta en la terminal
  • Los íconos eliminados vuelven a aparecer en el dock luego del reinicio
  • Necesito detener una actualización de iMac que ya está descargada y list para instalar
  • One Solution collect form web for “Cómo hacer que un service funcione luego del lanzamiento”

    Puedes hacer que esto funcione con launchd. Esto requiere dos pasos: primero crear un script que invoque su (s) service (s), y segundo crear un file plunch de LaunchAgent que invoque al script en el momento del lanzamiento.

    Primer paso: crear un script que invoque su (s) service (s)

    1. Escriba un file de text con el siguiente contenido, donde ~/Library/Services/myservice.workflow apunta al service que desea iniciar (si desea iniciar más de un service, repita la segunda línea que apunta a los diferentes services):

       #!/bin/bash automator ~/Library/Services/myservice.workflow 
    2. Guarde el file, por ejemplo, como ~/Library/LaunchAgents/me.myname.launchmyservice.sh

    3. Hazlo ejecutable al emitir el siguiente command en la Terminal:

       chmod u+x ~/Library/LaunchAgents/me.myname.launchmyservice.sh 

    Segundo paso: crear un LaunchAgent plist que llame a la secuencia de commands

    1. Escribe un file de text con el siguiente contenido. /Users/myusername/Library/LaunchAgents/me.myname.launchmyservice.sh adaptar la cadena /Users/myusername/Library/LaunchAgents/me.myname.launchmyservice.sh para que apunte al script creado en el primer paso. No puede usar una ruta relativa con ~ .

       <?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>me.myname.launchmyservice</string> <key>ProgramArguments</key> <array> <string>/Users/myusername/Library/LaunchAgents/me.myname.launchmyservice.sh</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist> 
    2. Guarde el file de text en ~/Library/LaunchAgents/me.myname.update-desktop-from-webcam.plist – el nombre debe coincidir con la key "Etiqueta" en el file.

    3. Cargarlo emitiendo el siguiente command:

       launchctl load ~/Library/LaunchAgents/me.myname.update-desktop-from-webcam.plist 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).