Ho uno script di shell bash che viene eseguito al login. Anche se ho selezionato la casella di controllo "nascondi" nelle preferenze di sistema, iTerm continua a essere visualizzato durante l'esecuzione.
Come posso nasconderlo completamente?
Prova invece a eseguire lo script con launchd. Salva un elenco di proprietà come ~/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>
Lo script dovrebbe essere eseguito al prossimo accesso. Assicurati che lo script sia eseguibile ( chmod +x /path/to/script
) e inizi con una riga di interprete (come #!/usr/bin/env bash
).
Puoi anche sostituire la chiave Program
con, per esempio
<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>
Vedi man launchd.plist
o link per ulteriori informazioni.
Ha funzionato benissimo per risolvere il bluetooth Mavericks sempre da scoprire usando il seguente 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
Leggi altre domande sui tag bash mavericks iterm login-items script