Is your program using signals or does it use sockets (listen on a port)? Your terminology is a bit confusing.
If you are using signals you are using the signal call:
signal( SIGUSR1, sig_usr1 );
If you are using sockets to communicate (unnecessary complication for simple IPC on the same machine) you will have:
socket( AF_INET, ... );
bind( ... );
Or are you using both?
Also, I'd recommend using exec instead of system.