Here i think i figure out what is my problem is :

1- I am using kill() witch will raise SIGKILL signal will send to the process which will not give it time to end all the other processes and clean.
I need to use terminate() witch will send SIGTERM signal to all it to end all the forked processes and end cleanly.

2- the command i using is actually calling a script witch will launch the real application.
so myQprocess has the idea for the script and when i kill it or terminate it, it wont affect the real application, it just ends the script with already started the application.

so what i think i need to do is to find a way to handle the child of myQprocess.

Is there away to reach the child of Qprocess ??