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.

  • Anclaje a Android: Mac no detecta una nueva interfaz de networking
  • Agregue pdfs y epubs a iTunes 12 en MacOS Sierra
  • ¿MacOS Sierra es compatible con múltiples usuarios que se conectan simultáneamente a la misma máquina mediante el uso compartido de pantallas?
  • Grandes menus desplegables (fuera de la location esperada)
  • Error de printing macOS Sierra 10.12
  • OSX Sierra: las reglas de correo se han ido
  • El menu de acento de caracteres ya no aparece en macOS Sierra
  • ¿Por qué mi computadora hiberna cuando duerme?
  • 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).