Stavo leggendo un post su utilizzando BitTorrent Sincronizza su OS X che include un plist di avvio che dovrebbe mantenere l'applicazione in esecuzione nel caso in cui si blocchi. Non sembra funzionare, però, dal momento che ho avuto l'arresto anomalo dell'app e non il riavvio. Sto cercando aiuto per correggere il plist.
Il plist ha questo aspetto:
<?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>
Il bit "intelligente" utilizza /usr/bin/open
per avviare l'app, con -W
per assicurarti che open
aspetti che l'app esca. Ma penso che sia anche per questo che in realtà non funziona. Se sto leggendo questo, l'app verrà riavviata solo se /usr/bin/open
si blocca, non se Bittorrent Sync si blocca. Affinché l'approccio sopra funzioni, open
dovrebbe restituire lo stato di errore se l'app che ha aperto si è arrestata in modo anomalo (e ciò non accade).
So che potrei risolvere questo problema eliminando open
e invece hard codificando il percorso dell'eseguibile come /Applications/BitTorrent Sync.app/Contents/MacOS/BitTorrent Sync
. Ma c'è un'alternativa che non richiede l'hard-coding del percorso completo? Usare open
sarebbe elegante, se funzionasse.