4 votos

¿Cuál es la mejor manera de iniciar automáticamente una aplicación si no se está ejecutando?

Quiero iniciar automáticamente una aplicación si no se está ejecutando. Mi caso es que si salgo de una aplicación en particular quiero que se reinicie automáticamente. Específicamente en mi caso es la aplicación de Mensajes.

Siempre quiero mantener la aplicación Mensajes en funcionamiento, así que si salgo de Mensajes quiero que se reinicie.

¿Cuál es la mejor manera de manejar esto?

5voto

Satanicpuppy Puntos 4902

Lo que se busca es launchd .

Le permitirá ejecutar una aplicación de forma continua (auto-inicio en el arranque, relanzamiento cuando se cierra/se bloquea)

Para utilizarlo, añada un plist archivo en ~/Library/LaunchAgents/

<?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>SomeApp.restart</string>
        <key>ProgramArguments</key>
        <array>
                <string>/path/to/SomeApp.app/Contents/MacOS/SomeApp</string>
        </array>
        <key>StartCalendarInterval</key>
        <dict>
            <key>Hour</key>
            <integer>5</integer>
            <key>Minute</key>
            <integer>10</integer>
       </dict>
</dict>
</plist>

A continuación, cárguelo una vez con launchctl load ~/Library/LaunchAgents/SomeApp.restart.plist

  • El RunAtLoad lanzará la aplicación la primera vez que launchctl la ejecute.
  • El KeepAlive volverá a lanzar la aplicación si se bloquea.
  • El StartCalendarInterval lo ejecutará a una hora determinada. Presumiblemente esto es mutuamente excluyente con los dos anteriores, pero se incluye para mostrar lo que se puede hacer con launchd Launchctl lo ejecutará después de los reinicios.

1voto

Lee Joramo Puntos 1215

Como se ha mencionado, launchctl es el comando que quieres. Me parece que la sintaxis de launchctl es bastante difícil en comparación con crontab. Por supuesto, launchctl hace mucho más que cron. Por lo tanto, yo uso Lingon para proporcionar una interfaz gráfica de usuario para gestionar launchctl.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X