24 votos

¿Cómo puedo utilizar comandos launchctl no "heredados" para cargar y descargar plists?

Tengo algunos archivos plist en ~/Library/LaunchAgents .

He estado usando felizmente launchctl load -w y launchctl unload -w para encenderlos y apagarlos durante años. Sin embargo, noto que ahora load y unload están relegados a la sección "legacy" de la página man. Llamemos a uno de ellos com.example.service.plist .

Sin embargo, cuando intento interactuar con estos plists a través de launchctl enable "gui/$(id -u)/com.example.service" y launchctl disable "gui/$(id -u)/com.example.service" , otros comandos de launchd parece para informar del éxito, por ejemplo, launchctl print "gui/$(id -u)" me muestra totalmente las banderas deshabilitadas que corresponden al estado que he establecido - los servicios realmente no se inician y se detienen o escuchan y desescuchan en sus puertos.

¿Hay algún paso que me esté perdiendo? Por el momento me quedo con load y unload pero me gustaría aprender la forma no obsoleta de interactuar con estas cosas antes de que Apple acabe dando un portazo a la vieja/mala forma...

0 votos

El legado significa que un cambio está en marcha - todavía se puede utilizar la carga y descarga a su contenido del corazón en 10.11 y menor. Mi presunción es que Apple tendrá la documentación en WWDC este año y una línea de tiempo para la migración...

1 votos

Supongo que todavía no hay una respuesta para esto, pero seguro que mira como enable y disable están destinados a sustituir load y unload . No consigo que funcionen como espero.

1 votos

¿Has probado a seguir launchctl enable con launchctl kickstart ?

8voto

moodforaday Puntos 2633

Pregunté el usuario de Twitter @launchderp :

@launchderp Son launchctl load y descargar aún es seguro, al menos hasta la 10.12 o lo que venga después?

c.f ¿Cómo puedo utilizar comandos launchctl no "heredados" para cargar y descargar plists?

Y @launchderp respondió

@tjluoma Sí, siguen siendo seguros. Demasiados años de dependencias como para romperlas.

Aunque esto no parezca una declaración oficial de Apple, creo que esta persona es alguien que está trabajando activamente en launchd para Apple, y confía en lo que dicen. YMMV.

Moraleja de la historia: Si la carga/descarga te funciona, sigue utilizándola :-)

3 votos

No se marca como "aceptada" porque no responde del todo a la pregunta sobre enable y disable pero upvoted porque todavía aprecio la información :).

6voto

Arvo Bowen Puntos 164

El artículo referido por TJ Luoma es muy útil. Pasos para el lanzamiento de Daemon:

  1. Guarde su archivo plist en /Library/LaunchDaemons/ como siempre. Digamos que el archivo es com.example.mysrv.plist y la etiqueta en plist es com.example.mysrv .
  2. sudo launchctl bootstrap system /Library/LaunchDaemons/com.example.mysrv.plist . Tenga en cuenta que la ruta puede ser relativa (a $PWD ) o absoluta.
  3. Compruebe el servicio con sudo launchctl print system/com.example.mysrv . Debería decir "corriendo".

Los agentes de lanzamiento deberían ser similares. Advertencia: No tengo idea de cómo detener un servicio sin descargarlo a través de bootout .

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