Estaba leyendo una publicación sobre utilizando Bittorrent Sincronización en OS X que incluye una lista de lanzamiento que se supone que debe mantener la aplicación en ejecución en caso de que se bloquee. Sin embargo, no parece funcionar, ya que la aplicación se bloqueó y no se reinició. Estoy buscando ayuda para arreglar el error.
El plist se ve así:
<?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>KeepAlive</key>
<dict>
<key>Crashed</key>
<true/>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>Label</key>
<string>sync.com.tjluoma.bittorrentsync</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/open</string>
<string>-W</string>
<string>-a</string>
<string>BitTorrent Sync</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
El bit "inteligente" está utilizando /usr/bin/open
para iniciar la aplicación, con -W
para asegurarse de que open
espera a que la aplicación salga. Pero creo que por eso tampoco funciona. Si estoy leyendo esto correctamente, la aplicación solo se reiniciará si /usr/bin/open
se bloquea, no si Bittorrent Sync se bloquea. Para que funcione el enfoque anterior, open
tendría que devolver el estado de error si la aplicación que se abrió se bloqueó (y esto no ocurre).
Sé que podría solucionar este problema eliminando open
y, en cambio, codificando la ruta al ejecutable como /Applications/BitTorrent Sync.app/Contents/MacOS/BitTorrent Sync
. Pero, ¿hay alguna alternativa que no requiera la codificación completa de la ruta? Usar open
sería elegante, si funcionara.