Se você deseja separar um serviço e sua IU, você precisa de algum tipo de mecanismo IPC para torná-los comunicar. Vários deles existem, mas o padrão em sistemas baseados em linux atualmente é o D-Bus, que pode ser usado para acessar um serviço escrito em C a partir de um cliente escrito em qualquer linguagem que possua ligações D-Bus (Java e Mono possuem ). Seu serviço deve fornecer um serviço D-Bus para o cliente ligar. O D-Bus também oferece uma maneira de iniciar automaticamente os serviços. Parar e configurar podem ser facilmente implementados.
Eu não faria sua interface pegar resultados a cada milissegundos, já que humanos não podem processar informações rapidamente. Uma taxa de atualização de 25 a 30 vezes por segundo deve ser mais que suficiente.