¿Cómo puedo iniciar un nuevo proceso que NO es un elemento secundario del proceso original?

(OSX 10.7) Una aplicación que usamos nos permite asignar scripts para ser llamados cuando ciertas actividades ocurren dentro de la aplicación. He asignado un script de bash y se está llamando, el problema es que lo que debo hacer es ejecutar algunos comandos, esperar 30 segundos y luego ejecutar algunos comandos más. Si tengo mi script de bash, hago un "sleep 30" y la aplicación completa se congela durante esos 30 segundos mientras espero a que termine mi script.

Intenté poner la espera de 30 segundos (y el segundo conjunto de comandos) en una secuencia de comandos separada y llamar a "./secondScript &", pero la aplicación todavía permanece allí durante 30 segundos sin hacer nada. Asumo que la aplicación está esperando el script.y todos los procesos infantiles para terminar.

He intentado estas variaciones para llamar al segundo script desde el script principal, todos tienen el mismo problema:

nohup ./secondScript &((./secondScript &) &)(./secondScript &)script nohup -q / dev / null secondScript &

No tengo la capacidad de cambiar la aplicación y decirle que inicie mi script y que no espere a que se complete.

¿Cómo puedo iniciar un proceso (preferiría que el proceso sea en un lenguaje de scripting) de modo que el nuevo proceso no sea un elemento secundario del proceso actual?

Gracias chris

PD. Intenté el comando "rechazar" y tampoco ayudó. Mi guión principal se ve así:

[initial commands]
echo Launching second script
./secondScript &
echo Looking for jobs
jobs
echo Sleeping for 1 second
sleep 1
echo Calling disown
disown
echo Looking again for jobs
jobs
echo Main script complete

y lo que obtengo por salida es esto:

Launching second script
Looking for jobs
[1]+ Running ./secondScript &
Sleeping for 1 second
Calling disown
Looking again for jobs
Main script complete

y en este punto, la aplicación que llama permanece allí durante 45 segundos, a la espera de que termine el segundo script.

p.p.s

Si, en la parte superior del script principal, ejecuto "ps", lo único que devuelve es el ID de proceso de la sesión de bash interactiva que tengo abierta en una ventana de terminal separada.

El valor de $ SHELL es / bin / bash

Si ejecuto "ps -p $" me dice correctamente

PID   TTY TIME    CMD
26884 ??  0:00.00 mainScript

Si ejecuto "lsof -p $" me da todo tipo de resultados (no pegué todas las columnas aquí suponiendo que no son relevantes):

FD   TYPE   NAME
cwd  DIR    /private/tmp/blahblahblah
txt  REG    /bin/bash
txt  REG    /usr/lib/dyld
txt  REG    /private/var/db/dyld/dyld_shared_cache_x86_64
0    PIPE   
1    PIPE   -> 0xffff8041ea2d10
2    PIPE   -> 0xffff 8017d21cb
3r   DIR    /private/tmp/blahblah
4r   REG    /Volumes/DATA/blahblah
255r REG    /Volumes/DATA/blahblah

Respuestas a la pregunta(5)

Su respuesta a la pregunta