Intenta guardar un plist como este ~/Library/LaunchAgents/utorrent.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>utorrent</string>
<key>ProgramArguments</key>
<array>
<string>open</string>
<string>-gjWa</string>
<string>uTorrent</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
Se puede cargar con launchctl load ~/Library/LaunchAgents/utorrent.plist
o cerrando la sesión y volviéndola a abrir.
-W, --wait-apps Blocks until the used applications are closed (even if they were already running).
-j, --hide Launches the app hidden.
-g, --background Does not bring the application to the foreground.
/Applications/uTorrent.app/Contents/MacOS/uTorrent
mostraría una ventana visible de uTorrent si éste no se estuviera ejecutando.
Otra opción podría ser añadir una línea como ésta a crontab:
*/5 * * * * pgrep -xq uTorrent && osascript -e 'launch app "uTorrent"' || open -gja uTorrent
open -gj
muestra la ventana principal si uTorrent está abierto pero no tiene ventanas visibles. launch
muestra la ventana principal si uTorrent no está abierto.
Los programas que se ejecutan desde el crontab se ejecutan en la sesión de seguridad / inicio de sesión del sistema. Por ejemplo, Mail no puede acceder a los llaveros si se abre con cron.