2009-05-28 13 views
9

Si tengo un trabajo cron que se ejecuta cada 10 minutos y por algún motivo, esta vez lleva 12 minutos ejecutar el trabajo, ¿comenzará cron otra instancia de mi código mientras el anterior aún se está ejecutando? Si es así, ¿cómo puedes evitar esto en Linux?Ejecutando un Cron Job

Respuesta

10

Sí, lo hará.

Debe hacer que su programa cree un archivo .pid (por ejemplo en/var/run /). Cuando comienza, debe verificar si dicho archivo ya existe y si es así, salir.

¿Qué programa/secuencia de comandos está ejecutando?

+0

estoy corriendo un script php para enviar correo. –

+0

Algo así hará el truco entonces http://www.dreamincode.net/code/snippet2407.htm – MartinodF

+0

¿Puede mostrarnos un snipet sobre cómo hacer esto? – oneofakind

3

Sí. Cron lanzará un proceso en el intervalo programado, independientemente de si el anterior no se ha completado.

Puede touch un archivo, como se indica en otra respuesta, y verifique su existencia antes de iniciar su proceso.

O bien, podría examinar la lista de procesos para ver si una "instancia" ya se está ejecutando:

ps -ef | grep *your_script_name* | grep -v grep | wc -l 
Cuestiones relacionadas