J'ai un shell bash script qui s'exécute à la connexion. Même si j'ai coché la case "cacher" dans les préférences système, iTerm s'affiche toujours pendant son exécution.
Comment puis-je le cacher complètement ?
J'ai un shell bash script qui s'exécute à la connexion. Même si j'ai coché la case "cacher" dans les préférences système, iTerm s'affiche toujours pendant son exécution.
Comment puis-je le cacher complètement ?
Essayez d'exécuter le script avec launchd à la place. Sauvegardez une liste de propriétés comme celle-ci en tant que ~/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 la prochaine connexion. Assurez-vous que le script est exécutable ( chmod +x /path/to/script
) et commence par une ligne de l'interpréteur (comme #!/usr/bin/env bash
).
Vous pouvez également remplacer le Program
avec par exemple
<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>
Voir man launchd.plist
o http://osxnotes.net/launchd.html pour plus d'informations.
Cela a bien fonctionné pour résoudre le cauchemar Mavericks bluetooth always discoverable 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
LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.