Estuve probando ejecutar kate desde los procesos hijos, y me da el error:
Cita: kate: cannot connect to X server
O sea, parece ser algo relacionado al entorno en el que se ejecuta el subproceso (por ejemplo, aparentemente en este caso no está definida la variable de entorno $DISPLAY), que sí está definida en la shell desde donde ejecuto.
Deberíamos leer más sobre el entorno en que se ejecutan los comandos llamados por execve() y system(). Ahora mismo estoy corto de tiempo, pero si encuentro algo te aviso.
Si encontrás la respuesta, sería interesante que postearas aquí, jeje
Saludos