Reiniciar aplicación automaticamente MacOS

Esto es un script para launchd que mantiene UnaApp siempre corriendo. Se guarda en ~/Library/LaunchAgents/ y se llama UnaApp.restart.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>RunAtLoad</key>  
        <true/>  
        <key>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>UnaApp.restart</string>
        <key>ProgramArguments</key>
        <array>
                <string>/path/to/UnaApp.app/Contents/MacOS/UnaApp</string>
        </array>
</dict>
</plist>

Puedes lanzarlo una vez con:

launchctl load ~/Library/LaunchAgents/UnaApp.restart.plist

Launchctl lo ejecutará tras un reinicio.

  • RunAtLoad lanzará la aplicación la primera vez que se ejecute launchctl
  • KeepAlive la reiniciará cada vez que la aplicación se cierre, con CMD+Q o por un error (crash)

Debería ejecutarse continuamente. Si quieres una herramienta con GUI para hacer esto, Lingon funciona pero es de pago.