Script de connexion caché

1

J'ai un script shell bash qui s'exécute lors de la connexion. Même si j'ai coché la case "masquer" dans les préférences système, iTerm reste affiché pendant son exécution.

Comment puis-je le cacher complètement?

cfischer
la source

Réponses:

4

Essayez d'exécuter le script avec launchd à la place. Enregistrer une liste de propriétés comme celle-ci sous ~/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>

Le script doit être exécuté lors de votre prochaine connexion. Assurez-vous qu’il est exécutable ( chmod +x /path/to/script ) et commence par une ligne d'interprétation (comme #!/usr/bin/env bash ).

Vous pouvez également remplacer le Program clé avec par exemple

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

ou

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

Voir man launchd.plist ou http://osxnotes.net/launchd.html pour plus d'informations.

Lri
la source
Quelle est la chose étiquette?
cfischer
1

Travaillait très bien pour résoudre le cauchemar toujours découvrable du bluetooth Mavericks en utilisant le script suivant:

#!/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
PeterF
la source