Salva un plist come questo ~/Library/LaunchAgents/test.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>test</string>
<key>ProgramArguments</key>
<array>
<string>bash</string>
<string>-c</string>
<string>while sleep 5; do
if pgrep -x Preview; then
pgrep -x TextEdit || open -jga TextEdit
else
pgrep -x TextEdit && osascript -e 'quit app "TextEdit"'
fi
done</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
Quindi carica il plist con launchctl load ~/Library/LaunchAgents/test.plist
o esegui il logout e torna indietro.
open -jg
dovrebbe aprire un'applicazione nascosta e senza generare alcuna finestra. Per alcune applicazioni basate su documenti come TextEdit, apre una nuova finestra visibile se l'applicazione è aperta ma non ha finestre visibili.
pgrep
e l'opzione -j
per open
sono stati aggiunti in 10.8. L'opzione -j
viene mostrata solo nel messaggio di aiuto e non nella pagina man.