1 votos

Tasker: verificar continuamente el resultado del comando de shell y ejecutar la tarea cuando coincida

Tengo el siguiente comando de shell que revisa si un proceso en particular está en ejecución:

pgrep -x com.package.name

Devuelve un ID de proceso si el proceso está en ejecución, o devuelve vacío si no lo está. ¿Cómo puedo incorporar esto en un perfil de tasker que revise cada pocos segundos y ejecute una tarea cuando ve que el resultado está vacío?

El objetivo final aquí es mantener cerca del 100% de tiempo de actividad en un proceso que tiende a cerrarse varias veces al día.

2voto

Firelord Puntos 161

Veoa dos maneras de hacer lo que quieres.

Ejecuta un perfil basado en el tiempo y configúralo para que se repita cada n minutos. Luego sigue tus acciones lógicas en la tarea de qué hacer cuando se bloquee.

La otra opción (ya que lo anterior no da control sobre segundos sino minutos y horas) es ejecutar la tarea manualmente o en algún momento automáticamente (digamos a las 10:00 AM) pero hacer una tarea de bucle infinito.

Por ejemplo, considera las siguientes acciones:

Nota: Cualquier cosa con y entre <> debe ser reemplazada con tus valores personalizados.

  1. Código → Ejecutar Shell

    • Comando:
    • Guardar salida en: %Grep
  2. Crea esta acción basada en qué hacer cuando el comando anterior no devuelva nada es decir cuando el proceso no se esté ejecutando.

    Al hacerlo, establece una condición 'Si' bajo esa acción. Por ejemplo, bajo la acción App → Lanzar App, la condición Si sería %Grep No está definido.

    Ten en cuenta que no estoy hablando de usar una acción If separada.

  3. Agrega una espera del número de segundos/minutos/horas que desees usando Tarea → Esperar

  4. Ahora es el momento de hacer un bucle infinito. Usa la acción Tarea → Ir a

    • Tipo: Número de acción
    • Número: 1

Todo lo que hemos hecho aquí es ejecutar un comando, luego ejecutar una acción solo si el primer comando no devuelve nada, luego esperar un tiempo y luego repetir todo el procedimiento.

En algún momento, querrás deshacerte de ese bucle infinito. Puedes considerar desactivar y volver a activar Tasker o hacer una acción de detener en otra tarea usando Tarea → Detener y ejecutarla manualmente.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android 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