mm PHP no está diseñado para este tipo de procesos .. piensa que de preferencia PHP funciona en modo "cliente-servidor". Su misión es "tu pides la ejecución del script" y el servidor lo ejecuta lo más rápido posible para liberar al "cliente".
De todas formas podrías estudiar estas funciones:
http://www.php.net/manual/en/feature...n-handling.php
Tendrás que darle mínimo 5 minutos de tiempo de ejecución a tus scripts (con set_time_limit()) ...
El tema de "detener la ejecución de tu script " .. realmente lo haces con tu "x" de tu navegador cerrando la ventana .. El proceso no lo "lanzarías" en una especie de "segundo plano" .. (como podrías hacerlo con: register_shutdown_function()), pues .. (que yo sepa) no hay función para "matar" ese proceso que lanzases o proceso en general por cierto identificador.
Podrías ver también funciones:
register_tick_function() y unregister_tick_function() ..
En general como te comento . .PHP no está diseñado para estos fines ..
Un saludo,