El Martes, 25 de Abril de 2006 00:03, Angel Claudio Alvarez escribió: > El lun, 24-04-2006 a las 23:38 +0200, Iñaki escribió: > > Hola, hoy he tenido un problema inesperado con un servidor de correo. > > Resulta que en ocasiones debe llamar a un programa externo el cuál a su > > vez llama a un script. > > > > El problema es que el servidor de correo interrumpe el programa externo > > si no ha terminado en 2 minutos, circunstancia que no contemplaba como > > posible pero que por desgracia sí ocurre en ocasiones. > > > > Necesito que el script que ejecuta el programa externo acabe como sea, > > aunque le lleve más de 2 minutos. > > yo utilizaria perl, forkeo un proceso y le meto un tiempo de espera, si > se alcanza el maximo ( digamos 110 segundos) salgo con codigo de error
El caso es que no hay nada de malo si el script tarda más de 2 minutos, puede ocurrir perfectamente (depende del tráfico de subida). De todas formas lo de Perl... sé que existe y eso... ;) > > Yo no puedo alterar cómo el servidor de correo llama al programa externo > > pero sí cómo ese programa externo llama al script (pues el programa es un > > código BASH). > > > > > > > > Había pensado en hacer la llamada al script así: > > > > nohup script & > > > > ya que según he leído en el manual de "nohup" de esta forma el script se > > ejecuta hasta el final a pesar de que su proceso padre muera e incluso a > > pesar de que reciba señales de "hangup". > > > > Desgraciadamente no sé qué garantías me ofrece esto (la documentación es > > terriblemente escasa) y me gustaría saber si realmente esto funciona así > > el 100% de los casos y si se garantiza que el script llamado con "nohup" > > finalice aunque el programa externo sea matado por el servidor de correo > > a los 2 minutos. > > nohup lanza un proceso independiente > El script no terminara nunca si entra en un loop, por lo tanto no te > garantizara que termine Ok, viene bien saberlo. No obstante el script sólo lee un fichero con un sed y lo manda por entrada estándar a un comando "sendEmail" que lo envía al SMTP correspondiente. No se me ocurre que pueda ocurrir ningún loop (espero). Gracias y un saludo. -- intentando mejorar Konqueror: http://konqueror4.linuxdevel.net y si te gusta puedes votar: ;) http://www.kde-look.org/content/show.php?content=36385

