¿Por qué mi secuencia de commands launchd no se ejecuta al iniciar session?

Intenté seguir esta pregunta para que, al iniciar session, el protector de pantalla configurado actualmente se convierta en el background del escritorio. Por lo tanto, he creado el siguiente script:

# login.sh /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -background & 

Luego, creé un service de lanzamiento como ~/Library/LaunchAgents/my_login_items.plist con el contenido

  • ¿Requiere iniciar session para el modo de usuario único?
  • En Mountain Lion, ¿por qué las shells remotas a través de ssh NO henetworkingan el entorno del process principal de launchd?
  • Listar bashs de inicio de session fallidos en Mavericks
  • Edición de files de sistema / biblioteca con Property List Editor (PLE)
  • Iniciar session en Mac con tarjetas RFID
  • Ejecute el script como root cada vez que un usuario inicie session
  •  <?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>com.user.loginscript</string> <key>Program</key> <string>/path/to/login.sh</string> <key>RunAtLoad</key> <true/> </dict> </plist> 

    Y luego ejecute launchctl load ~/Library/LaunchAgents/my_login_items.plist . No pasa nada, sin embargo.

  • La aplicación intenta abrir aunque está desinstalada
  • ¿Cómo puedo ejecutar / detener / relanzar una aplicación automáticamente, en el arranque / inicio de session / en otro momento?
  • Deshabilitar los elementos de inicio que se ejecutan por su count
  • ¿Está cargando su escritorio antes de iniciar session de forma segura?
  • Ejecutar acción cuando el dispositivo está separado
  • SSH a localhost en OS X Mountain Lion falla con contraseña no válida (después de la reinstallation y migration)
  • One Solution collect form web for “¿Por qué mi secuencia de commands launchd no se ejecuta al iniciar session?”

    Esta es una respuesta profundamente insatisfactoria, pero la hice funcionar ejecutando /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -background & en una subcategoría. Cambié login.sh a …

     #!/bin/bash longname=$0 shortname=$(basename "${longname}") echo "$(date -u "+%Y-%m-%d %H:%M:%S") ${shortname} (${longname}) running..." output=$(/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -background) # <- COMMAND GOES HERE echo "$(date -u "+%Y-%m-%d %H:%M:%S") ${shortname} ended." 

    … y eso funciona (mi escritorio estático habitual cambia a mi protector de pantalla pnetworkingeterminado). Utilizo esta expresión idiomática para otras tareas de lanzamiento, ejecutando las tareas en una subshell para que pueda probar fácilmente si la operación tuvo éxito y log $output . No entiendo por qué esto funciona mientras tu original no funciona, pero al less funciona.

    Tenga en count que eliminé el & del final de su command. No estoy seguro de que sea necesario con launchd , y estaba impidiendo que el script de envoltura iniciara session (aunque el & no fue la causa del problema original). )

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).