Intenta guardar una lista como esta como ~/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 al cerrar sesión y volver a iniciarla.
-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 uTorrent no se estuviera ejecutando.
Otra opción podría ser agregar una línea como esta 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 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 está abierto por cron.