Normally, controlchan is invoked by innd(8) as configured in newsfeeds. An example entry is below. Make sure that you've created the newsgroup control.cancel so that controlchan doesn't have to scan through cancels, which it won't process anyway.
controlchan!\ :!*,control,control.*,!control.cancel\ :AC,Tc,Wnsm\ :<pathbin in inn.conf>/controlchan
Note that in the (very, very unlikely) event that you need to process ihave/sendme control messages, be sure that logipaddr is set to false in inn.conf, because in this case controlchan needs a site name, not an IP address.
Controlchan tries to report all log messages through syslog(3), unless connected to an interactive terminal. To enable syslog(3)'ing for versions of Perl prior to 5.6.0, you will need to have run ``h2ph'' on your system include files at some point (this is required to make ``Sys::Syslog'' work). If you have not done so, do this:
cd /usr/include h2ph * sys/*
If you run FreeBSD, you will need to run the following in addition:
h2ph machine/*