3 votos

Cómo poner en marcha un servicio

Hace un tiempo, escribí algunos servicios y los asigné a combinaciones de teclas. El problema es que, aunque los servicios están en el menú Archivo de la aplicación, tengo que invocarlos manualmente la primera vez, y luego puedo usar la combinación de teclas. ¿Hay alguna forma de poder utilizar los servicios al iniciar la aplicación por primera vez? He mirado en esta respuesta pero prefiero utilizar una aplicación de terceros sólo si es absolutamente necesario.

0 votos

1voto

mach Puntos 282

Puedes hacer que esto funcione con launchd. Esto requiere dos pasos: Primero crear un script que invoque su(s) servicio(s), y segundo crear un archivo plist LaunchAgent que llame al script en el lanzamiento.

Primer paso: Crear un script que invoque tu(s) servicio(s).

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

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

  3. Hágalo ejecutable emitiendo el siguiente comando en el Terminal:

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

Segundo paso: Crear un plist LaunchAgent que llame al script.

  1. Escriba un archivo de texto con el siguiente contenido. Debe adaptar la cadena /Users/myusername/Library/LaunchAgents/me.myname.launchmyservice.sh para que apunte al script creado en el primer paso. No se puede utilizar 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 archivo de texto en ~/Library/LaunchAgents/me.myname.update-desktop-from-webcam.plist - el nombre debe coincidir con la clave "Etiqueta" del archivo.

  3. Cárguelo ejecutando el siguiente comando:

    launchctl load ~/Library/LaunchAgents/me.myname.update-desktop-from-webcam.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