Ejecute la aplicación en la ventana de inicio de sesión

Ejecute la aplicación en la ventana de inicio de sesión

Estoy buscando una manera de ejecutar una aplicación como Reflector o AirServer tanto en una Mac como en una PC antes de que se produzca el inicio de sesión del usuario, la aplicación prácticamente no tiene GUI hasta que alguien comienza a enviarle datos, momento en el cual pasa a pantalla completa.

¿Existe alguna forma de ejecutar una aplicación en la pantalla de inicio de sesión en una Mac y/o PC?

Respuesta1

En OS X, puede crear un agente de lanzamiento previo al inicio de sesión. Por ejemplo, guarde esta lista de propiedades como /Library/LaunchAgents/some.label.plist:

<?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>some.label</string>
  <key>LimitLoadToSessionType</key>
  <array>
    <string>LoginWindow</string>
    <string>Aqua</string>
  </array>
  <key>ProgramArguments</key>
  <array>
    <string>say</string>
    <string>a</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

Asegúrese de que el plist sea propiedad de root. Si no es así, se puede cargar si lo ejecuta launchd loadcomo usuario, pero Launchd no lo carga automáticamente.

Luego, si reinicia, el comando say debe ejecutarse una vez cuando se muestra la ventana de inicio de sesión y nuevamente después de que un usuario inicie sesión gráficamente.

Si no desea que el programa se vuelva a ejecutar cuando un usuario inicie sesión gráficamente, elimine <string>Aqua</string>.

Si el inicio de sesión automático está habilitado y LimitLoadToSessionTypeconfigurado en solo LoginWindow, el programa no se ejecuta en absoluto.

Ver elNota técnica sobre demonios y agenteso man launchd.plistpara más información.

información relacionada