Script de inicio de sesión oculto

1

Tengo un script de shell bash que se ejecuta al iniciar sesión. Aunque seleccioné la casilla de verificación "ocultar" en las preferencias del sistema, iTerm aún se muestra mientras lo ejecuto.

¿Cómo lo escondo completamente?

    
pregunta cfischer 21.11.2013 - 23:38

2 respuestas

4

Intente ejecutar el script con launchd en su lugar. Guarde una lista de propiedades como esta como ~/Library/LaunchAgents/some.label.plist :

<?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>some.label</string>
  <key>Program</key>
  <string>/path/to/script</string>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

La secuencia de comandos se debe ejecutar la próxima vez que inicie sesión. Asegúrese de que la secuencia de comandos sea ejecutable ( chmod +x /path/to/script ) y comience con una línea de intérprete (como #!/usr/bin/env bash ).

También puede reemplazar la clave Program con, por ejemplo,

<key>ProgramArguments</key>
<array>
  <string>say</string>
  <string>a</string>
</array>

o

<key>ProgramArguments</key>
<array>
  <string>bash</string>
  <string>-c</string>
  <string>say a;ls|say</string>
</array>

Consulte man launchd.plist o enlace para obtener más información.

    
respondido por el user495470 22.11.2013 - 12:01
1

Funcionó muy bien para resolver la pesadilla siempre detectable del bluetooth de los Mavericks utilizando el siguiente script:

#!/bin/sh

defaults -currentHost write com.apple.Bluetooth DiscoverableState -bool no

launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist 2> /dev/null

launchctl load /System/Library/LaunchDaemons/com.apple.blued.plist
    
respondido por el PeterF 27.03.2014 - 15:46

Lea otras preguntas en las etiquetas