Saltar al contenido

¿Cómo ejecutar scripts cada 5 segundos?

Solución:

Cron solo permite un mínimo de un minuto. Lo que tu podría Lo que hace es escribir un script de shell con un bucle infinito que ejecute su tarea y luego duerma durante 5 segundos. De esa manera, su tarea se ejecutará más o menos cada 5 segundos, dependiendo de cuánto tiempo tome la tarea en sí.

#!/bin/bash

while true; do
  # Do something
  sleep 5;
done

Puedes crear un my-task.sh archivo con el contenido anterior y ejecútelo con sh my-task.sh. Opcionalmente puedes configurarlo con supervisor como un servicio para que se inicie cuando se inicie el sistema, etc.

Realmente suena como si estuvieras haciendo algo que probablemente no deberías estar haciendo. Esto se siente incorrecto.

Podrías tener un cron El trabajo inicia un script cada minuto que inicia 12 procesos en segundo plano de la siguiente manera:

* * * * * ~/dostuff.sh

dostuff.sh:

(sleep 5 && /path/to/task) &
(sleep 10 && /path/to/task) &
(sleep 15 && /path/to/task) &
(sleep 20 && /path/to/task) &
(sleep 25 && /path/to/task) &
(sleep 30 && /path/to/task) &
(sleep 35 && /path/to/task) &
(sleep 40 && /path/to/task) &
(sleep 45 && /path/to/task) &
(sleep 50 && /path/to/task) &
(sleep 55 && /path/to/task) &
(sleep 60 && /path/to/task) &

Mi pregunta, sin embargo, es Que demonios ¿Podría estar haciendo que se ejecute cada 5 segundos?

Solo usa un bucle:

while true ; do ./your-script & sleep 5; done

Esto iniciará su script como un trabajo en segundo plano, dormirá durante 5 segundos y luego volverá a repetirse. Puede usar Ctrl-C para cancelarlo, o usar cualquier otra condición en lugar de true, p.ej ! test -f /tmp/stop-my-script para solo hacer un bucle mientras el archivo /tmp/stop-my-script no existe.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *